1
0
mirror of https://github.com/nerzhul/ownCloud-SMS-App.git synced 2025-06-27 17:56:09 +00:00

Rewrite application navigation to a better user experience

This commit is contained in:
Loic Blot 2016-03-07 21:25:36 +01:00
parent c8f37561cf
commit c49a098961
24 changed files with 257 additions and 442 deletions

View File

@ -25,27 +25,21 @@ package fr.unix_experience.owncloud_sms.activities;
* SUCH DAMAGE.
*/
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.MenuItem;
import android.widget.Toast;
import org.json.JSONArray;
import java.util.List;
import java.util.Vector;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.activities.remote_account.AccountListActivity;
import fr.unix_experience.owncloud_sms.engine.ASyncSMSSync.SyncTask;
@ -54,114 +48,63 @@ import fr.unix_experience.owncloud_sms.engine.SmsFetcher;
import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationType;
import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationUI;
public class MainActivity extends AppCompatActivity {
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
* fragments for each of the sections. We use a {@link FragmentPagerAdapter}
* derivative, which will keep every loaded fragment in memory. If this
* becomes too memory intensive, it may be best to switch to a
* {@link android.support.v4.app.FragmentStatePagerAdapter}.
*/
PagerAdapter mPagerAdapter;
/**
* The {@link ViewPager} that will host the section contents.
*/
ViewPager mViewPager;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, null, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
List<Fragment> fragments = new Vector<>();
/*
* Add the Main tabs here
*/
fragments.add(Fragment.instantiate(this,StarterFragment.class.getName()));
fragments.add(Fragment.instantiate(this,SecondTestFragment.class.getName()));
fragments.add(Fragment.instantiate(this,ThanksAndRateFragment.class.getName()));
mPagerAdapter = new MainPagerAdapter(getFragmentManager(), fragments);
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mPagerAdapter);
drawer.openDrawer(GravityCompat.START);
}
/**
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public class MainPagerAdapter extends FragmentPagerAdapter {
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
private final List<Fragment> mFragments;
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
boolean res = true;
public MainPagerAdapter(FragmentManager fragmentManager, List<Fragment> fragments) {
super(fragmentManager);
mFragments = fragments;
}
switch (id) {
case R.id.nav_sync: res = syncAllMessages(); break;
case R.id.nav_manage: res = openAppSettings(); break;
case R.id.nav_rateus: res = openGooglePlayStore(); break;
case R.id.nav_add_account: res = openAddAccount(); break;
case R.id.nav_my_accounts: res = openMyAccounts(); break;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return res;
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class
// below).
return mFragments.get(position);
}
@Override
public int getCount() {
// Show 3 total pages.
return mFragments.size();
}
}
/**
* Fragments for activity must be there
*/
public static class StarterFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_mainactivity_main, container,
false);
}
}
public static class SecondTestFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_mainactivity_gotosettings, container,
false);
}
}
public static class ThanksAndRateFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_mainactivity_thanks_note, container,
false);
}
}
public void openAppSettings(View view) {
private boolean openAppSettings () {
startActivity(new Intent(this, GeneralSettingsActivity.class));
return true;
}
public void openAddAccount(View view) {
private boolean openAddAccount () {
startActivity(new Intent(Settings.ACTION_ADD_ACCOUNT));
return true;
}
public void syncAllMessages(View view) {
private boolean syncAllMessages () {
Context ctx = getApplicationContext();
ConnectivityMonitor cMon = new ConnectivityMonitor(ctx);
@ -179,21 +122,23 @@ public class MainActivity extends AppCompatActivity {
else {
Toast.makeText(ctx, ctx.getString(R.string.err_sync_no_connection_available), Toast.LENGTH_SHORT).show();
}
return true;
}
public void selectRemoteAccount(View view) {
private boolean openMyAccounts () {
startActivity(new Intent(this, AccountListActivity.class));
return true;
}
public void openGooglePlayStore(View view) {
private boolean openGooglePlayStore () {
Intent intent;
try {
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getPackageName()));
} catch (android.content.ActivityNotFoundException anfe) {
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
}
startActivity(intent);
return true;
}
}

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M22.7,19l-9.1,-9.1c0.9,-2.3 0.4,-5 -1.5,-6.9 -2,-2 -5,-2.4 -7.4,-1.3L9,6 6,9 1.6,4.7C0.4,7.1 0.9,10.1 2.9,12.1c1.9,1.9 4.6,2.4 6.9,1.5l9.1,9.1c0.4,0.4 1,0.4 1.4,0l2.3,-2.3c0.5,-0.4 0.5,-1.1 0.1,-1.4z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/>
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

View File

@ -0,0 +1,9 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="135"
android:endColor="@color/oc_primary_dark"
android:centerColor="@color/oc_primary"
android:startColor="@color/oc_primary_dark"
android:type="linear"/>
</shape>

View File

@ -25,9 +25,59 @@
*/
-->
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="fr.unix_experience.owncloud_sms.activities.MainActivity" />
android:fitsSystemWindows="true"
tools:openDrawer="start"
xmlns:app="http://schemas.android.com/apk/res-auto">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/main_title_welcome"
android:padding="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/ma_title_welcome"
android:gravity="top"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/main_tv_welcome"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:layout_alignParentRight="true"
android:layout_below="@+id/main_title_welcome"
android:text="@string/ma_content_welcome"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/main_tv_swipe"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:layout_alignParentRight="true"
android:layout_below="@+id/main_tv_welcome"
android:text="@string/ma_content_swipeaction"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"/>
</android.support.v4.widget.DrawerLayout>

View File

@ -1,120 +0,0 @@
<!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="fr.unix_experience.owncloud_sms.MainActivity$PlaceholderFragment" >
<TextView
android:id="@+id/main_tv_accounts"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
style="@style/h1"
android:text="@string/ma_title_add_account" />
<Button
android:id="@+id/main_button_accounts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/main_tv_accounts"
android:onClick="openAddAccount"
style="@style/StandardButton"
android:text="@string/ma_button_goto_sync" />
<TextView
android:id="@+id/textView1"
android:layout_alignLeft="@+id/main_tv_accounts"
android:layout_alignStart="@+id/main_tv_accounts"
android:layout_below="@+id/main_button_accounts"
style="@style/h1"
android:text="@string/ma_title_change_settings" />
<Button
android:id="@+id/main_button_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:onClick="openAppSettings"
style="@style/StandardButton"
android:text="@string/ma_button_goto_settings" />
<TextView
android:id="@+id/tv_launchsync"
android:layout_alignLeft="@+id/main_tv_accounts"
android:layout_alignStart="@+id/main_tv_accounts"
android:layout_below="@+id/main_button_settings"
style="@style/h1"
android:text="@string/ma_title_sync_all" />
<Button
android:id="@+id/main_button_sync"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_launchsync"
android:onClick="syncAllMessages"
style="@style/StandardButton"
android:text="@string/ma_button_sync_accounts_now" />
<TextView
android:id="@+id/tv_remoteaccount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/main_tv_accounts"
android:layout_alignStart="@+id/main_tv_accounts"
android:layout_below="@+id/main_button_sync"
android:layout_marginTop="18dp"
android:text="@string/ma_title_remote_account"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/main_button_choose_account"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_remoteaccount"
android:onClick="selectRemoteAccount"
style="@style/StandardButton"
android:text="@string/choose_account" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_alignStart="@+id/textView1"
android:layout_below="@+id/main_button_choose_account"
android:layout_marginTop="33dp"
android:src="@drawable/next_arrow" />
<!-- android:layout_below="@+id/main_button_syncruir" -->
</RelativeLayout>

View File

@ -1,73 +0,0 @@
<!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="fr.unix_experience.owncloud_sms.MainActivity$PlaceholderFragment" >
<TextView
android:id="@+id/section_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/main_title_welcome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:text="@string/ma_title_welcome"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/main_tv_welcome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/section_label"
android:layout_alignStart="@+id/section_label"
android:layout_below="@+id/section_label"
android:layout_marginTop="16dp"
android:text="@string/ma_content_welcome"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:maxHeight="@dimen/arrow_max_height"
android:src="@drawable/next_arrow" />
</RelativeLayout>

View File

@ -1,83 +0,0 @@
<!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="fr.unix_experience.owncloud_sms.MainActivity$PlaceholderFragment" >
<TextView
android:id="@+id/tv_title_thanksto"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:text="@string/ma_button_thanksto"
style="@style/h1" />
<TextView
android:id="@+id/tv_thankspeople"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/tv_title_thanksto"
android:layout_marginTop="15dp"
android:text="@string/ma_thanksto_people"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/button_rateus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_rateUs"
android:text="@string/ma_button_rate_us"
android:onClick="openGooglePlayStore"
style="@style/StandardButton" />
<TextView
android:id="@+id/ma_title_rateus"
android:layout_alignLeft="@+id/tv_thankspeople"
android:layout_alignStart="@+id/tv_rateUs"
android:layout_below="@+id/tv_thankspeople"
style="@style/h1"
android:text="@string/ma_title_rate_us" />
<TextView
android:id="@+id/tv_rateUs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_below="@+id/ma_title_rateus"
android:text="@string/ma_content_rate_us"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@drawable/side_nav_bar"
android:gravity="top"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:src="@drawable/ic_launcher"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:text="@string/app_name"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"/>
</LinearLayout>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_sync"
android:icon="@drawable/ic_menu_send"
android:title="@string/sync_now"/>
<item
android:id="@+id/nav_add_account"
android:icon="@drawable/ic_menu_add"
android:title="@string/ma_title_add_account"/>
<item
android:id="@+id/nav_my_accounts"
android:icon="@drawable/ic_menu_edit"
android:title="@string/ma_title_my_accounts"/>
<item
android:id="@+id/nav_manage"
android:icon="@drawable/ic_menu_manage"
android:title="@string/action_settings"/>
</group>
<item android:title="@string/communicate">
<menu>
<item
android:id="@+id/nav_rateus"
android:icon="@drawable/ic_menu_share"
android:title="@string/ma_title_rate_us"/>
</menu>
</item>
</menu>

View File

@ -132,19 +132,11 @@
</string-array>
<!-- Main activity -->
<string name="ma_button_rate_us">Ohodnoťit!</string>
<string name="ma_button_thanksto">Poděkování</string>
<string name="ma_title_rate_us">Ohodnoťit!</string>
<string name="ma_content_rate_us">Pokud se vám tato aplikace líbí, ohodnoťte ji v Obchodě Google Play</string>
<string name="ma_title_add_account">Přidat účet</string>
<string name="ma_button_goto_sync">Přejít na Účty a synchronizaci</string>
<string name="ma_title_change_settings">Změnit nastavení aplikace</string>
<string name="ma_button_goto_settings">Přejít do Nastavení</string>
<string name="ma_title_welcome">Vítejte</string>
<string name="ma_content_welcome">Vítejte v aplikaci ownCloud SMS. Tato aplikace umožnuje sychronizovat SMS do vašeho účtu na serveru ownCloud za pomoci aplikace pro SMS.</string>
<string name="ma_thanksto_people">ownCloud vývojáři\n\ přispěvatelé a ti co hlásí chyby</string>
<string name="ma_title_sync_all">Synchronizovat všechny zprávy</string>
<string name="ma_button_sync_accounts_now">Spustit synchronizaci</string>
<string name="ma_title_remote_account">Vzdálený účet</string>
<string name="choose_account">Vybrat účet</string>
@ -182,4 +174,5 @@
<string name="pref_title_bulk_messages">Maximální počet zpráv pro odeslání na synchronizaci</string>
<string name="contactinfos_list">Adresář</string>
<string name="no_account_configured"></string>
<string name="ma_button_goto_settings"></string>
</resources>

View File

@ -129,5 +129,6 @@
<string name="err_sync_http_request_ioexception">Fehler #13: Konnte nicht mit der ownCloud-Instanz verbinden (IO-Fehler)</string>
<string name="err_sync_http_request_resp">Fehler #14: Konnte Server-Antwort nicht parsen</string>
<string name="err_sync_http_request_parse_resp">Fehler #15: Konnte Server-Antwort nicht parsen</string>
<string name="ma_button_goto_settings"></string>
</resources>

View File

@ -120,21 +120,14 @@
</string-array>
<!-- Main activity -->
<string name="ma_button_rate_us">Rate us !</string>
<string name="ma_button_thanksto">Thanks to</string>
<string name="ma_title_rate_us">Rate us !</string>
<string name="ma_content_rate_us">If you like this application, please give rate us on Google Play Store</string>
<string name="ma_title_add_account">Add an account</string>
<string name="ma_button_goto_sync">Go to Accounts and Sync</string>
<string name="ma_title_change_settings">Change app settings</string>
<string name="ma_button_goto_settings">Go to Settings</string>
<string name="ma_title_welcome">Welcome</string>
<string name="ma_content_welcome">Welcome to ownCloud SMS application. This application let you synchronize your SMS to your ownCloud instance using SMS app.</string>
<string name="ma_thanksto_people">ownCloud developers\n\
Contributors and issue\'s reporters</string>
<string name="ma_title_sync_all">Synchronize all messages</string>
<string name="ma_button_sync_accounts_now">Launch synchronization now</string>
<!-- Notifications -->
<string name="sync_title">Sync process</string>
<string name="sync_inprogress">Sync in progress...</string>
@ -167,5 +160,8 @@ Contributors and issue\'s reporters</string>
<string name="contactinfos_list">Contact list</string>
<string name="function_not_available">This function is not available yet.</string>
<string name="no_account_configured">No account configured.</string>
<string name="communicate">Communicate</string>
<string name="ma_title_my_accounts">My accounts</string>
<string name="ma_button_goto_settings"></string>
</resources>

View File

@ -91,4 +91,5 @@
<string name="sync_title">Proceso de sincronización</string>
<string name="sync_inprogress">Sincronización en progreso...</string>
<string name="fatal_error">Error Fatal ! </string>
<string name="ma_button_goto_settings"></string>
</resources>

View File

@ -104,21 +104,14 @@
<string name="error_http_connection_failed">Impossible d\'effectuer la connexion HTTP. Assurez vous qu\'il s\'agit d\'un serveur HTTP</string>
<!-- Main activity -->
<string name="ma_button_rate_us">Notez nous !</string>
<string name="ma_button_thanksto">Remerciements</string>
<string name="ma_title_rate_us">Notez nous !</string>
<string name="ma_content_rate_us">Si vous aimez cette application, n\'hésitez pas à nous noter sur le Google Play Store</string>
<string name="ma_title_add_account">Ajouter un compte</string>
<string name="ma_button_goto_sync">Ouvrir comptes et synchronisation</string>
<string name="ma_title_change_settings">Changer les paramètres de l\'application</string>
<string name="ma_button_goto_settings">Aller dans les paramètres</string>
<string name="ma_title_welcome">Bienvenue</string>
<string name="ma_content_welcome">Bienvenue sur l\'application ownCloud SMS. Cette application va vous permettre de synchroniser vos SMS au sein de votre instance ownCloud en utilisant l\'application dédiée.</string>
<string name="ma_thanksto_people">L\'équipe de développement ownCloud\n\
Les contributeurs et rapporteurs de bugs</string>
<string name="ma_title_sync_all">Synchroniser tous les messages</string>
<string name="ma_button_sync_accounts_now">Lancer la synchronisation</string>
<!-- Notifications -->
<string name="sync_title">Processus de synchronisation</string>
<string name="sync_inprogress">Synchonisation en cours...</string>
@ -152,4 +145,7 @@ Les contributeurs et rapporteurs de bugs</string>
<string name="contactinfos_list">Liste des contacts</string>
<string name="function_not_available">Cette fonctionnalité n\'est pas encore disponibleeems.</string>
<string name="no_account_configured">Vous n\'avez pas configuré de compte.</string>
<string name="communicate">Parlez de nous</string>
<string name="ma_title_my_accounts">Mes comptes</string>
<string name="ma_button_goto_settings"></string>
</resources>

View File

@ -91,20 +91,13 @@
<string name="error_http_connection_failed">Не могу да установим ХТТП везу. Проверите да ли веб сервер постоји</string>
<!-- Main activity -->
<string name="ma_button_rate_us">Оцените!</string>
<string name="ma_button_thanksto">Хвала</string>
<string name="ma_title_rate_us">Оцените нас!</string>
<string name="ma_content_rate_us">Ако вам се свиђа ова апликација оцените нас на Гугловој Плеј продавници</string>
<string name="ma_title_add_account">Додајте налог</string>
<string name="ma_button_goto_sync">Налози и синхронизација</string>
<string name="ma_title_change_settings">Измените поставке апликације</string>
<string name="ma_button_goto_settings">Поставке</string>
<string name="ma_title_welcome">Добро дошли</string>
<string name="ma_content_welcome">Добро дошли у Оунклауд СМС. Ова апликација синхронизује ваше СМС поруке на СМС апликацију вашег Оунклауд сервера.</string>
<string name="ma_thanksto_people">Оунклауд програмерима\n\
Доприносиоцима и људима који пријављују грешке</string>
<string name="ma_title_sync_all">Синхронизујте све поруке</string>
<string name="ma_button_sync_accounts_now">Почни синхронизацију сада</string>
<!-- Notifications -->
<string name="sync_title">Синхронизација</string>
@ -128,5 +121,6 @@
<string name="err_sync_http_request_parse_resp">Грешка #15: не могу да рашчланим одговор сервера</string>
<string name="err_sync_no_connection_available">Грешка #16: нема везе на интернет</string>
<string name="err_sync_account_unparsable">Грешка #17: деформисан налог. Поставите га поново</string>
<string name="ma_button_goto_settings"></string>
</resources>

View File

@ -107,21 +107,14 @@
<string name="error_http_connection_failed">Det gick inte att genomföra en HTTP-anslutning. Vänligen säkerställ att det finns en web-server</string>
<!-- Main activity -->
<string name="ma_button_rate_us">Skriv en recension!</string>
<string name="ma_button_thanksto">Tack till</string>
<string name="ma_title_rate_us">Skriv en recension!</string>
<string name="ma_content_rate_us">Om du gillar den här applikationen, ge oss ett omdömme i Google Play butiken</string>
<string name="ma_title_add_account">Lägg till ett konto</string>
<string name="ma_button_goto_sync">Gå till Konto och Synkronisering</string>
<string name="ma_title_change_settings">Ändra applikationsinställningar</string>
<string name="ma_button_goto_settings">Gå till Inställningar</string>
<string name="ma_title_welcome">Välkommen</string>
<string name="ma_title_rate_us">Skriv en recension!</string>
<string name="ma_title_add_account">Lägg till ett konto</string>
<string name="ma_title_change_settings">Ändra applikationsinställningar</string>
<string name="ma_title_welcome">Välkommen</string>
<string name="ma_content_welcome">Välkommen till ownCloud SMS. Den här applikationen gör det möjligt att synkronisera dina SMS till din ownCloud-server.</string>
<string name="ma_thanksto_people">- Utvecklarna utav ownCloud\n\ - De som bidragit, och som anmält buggar</string>
<string name="ma_title_sync_all">Synkronisera alla meddelanden</string>
<string name="ma_button_sync_accounts_now">Starta synkronisering nu</string>
<!-- Notifications -->
<!-- Notifications -->
<string name="sync_title">Synkroniseringsprocesss</string>
<string name="sync_inprogress">Pågående synkronisering</string>
<string name="fatal_error">Allvarligt fel! </string>
@ -143,5 +136,6 @@
<string name="err_sync_http_request_parse_resp">Error #15: Unable to parse server response</string>
<string name="err_sync_no_connection_available">Error #16: No data connection available</string>
<string name="err_sync_account_unparsable">Error #17: malformed account. Please reconfigure it</string>
<string name="ma_button_goto_settings"></string>
</resources>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:navigationBarColor">@color/oc_primary</item>
<item name="colorPrimaryDark">@color/oc_primary_dark</item>
@ -11,4 +12,12 @@
<item name="colorPrimaryDark">@color/oc_primary_dark</item>
<item name="android:navigationBarColor">@color/oc_primary</item>
</style>
>
<style name="OcSmsTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
</resources>

View File

@ -4,5 +4,9 @@
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="arrow_max_height">22dp</dimen>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="nav_header_vertical_spacing">16dp</dimen>
<dimen name="nav_header_height">120dp</dimen>
<dimen name="fab_margin">16dp</dimen>
</resources>

View File

@ -0,0 +1,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item>
<item name="ic_menu_share" type="drawable">@android:drawable/ic_menu_share</item>
<item name="ic_menu_send" type="drawable">@android:drawable/ic_menu_send</item>
<item name="ic_menu_add" type="drawable">@android:drawable/ic_menu_add</item>
<item name="ic_menu_edit" type="drawable">@android:drawable/ic_menu_edit</item>
</resources>

View File

@ -144,20 +144,10 @@
</string-array>
<!-- Main activity -->
<string name="ma_button_rate_us">Rate us !</string>
<string name="ma_button_thanksto">Thanks to</string>
<string name="ma_title_rate_us">Rate us !</string>
<string name="ma_content_rate_us">If you like this application, please give rate us on Google Play Store</string>
<string name="ma_title_add_account">Add an account</string>
<string name="ma_button_goto_sync">Go to Accounts and Sync</string>
<string name="ma_title_change_settings">Change app settings</string>
<string name="ma_button_goto_settings">Go to Settings</string>
<string name="ma_title_welcome">Welcome</string>
<string name="ma_content_welcome">Welcome to ownCloud SMS application. This application let you synchronize your SMS to your ownCloud instance using SMS app.</string>
<string name="ma_thanksto_people">ownCloud developers\n\
Contributors and issue\'s reporters</string>
<string name="ma_title_sync_all">Synchronize all messages</string>
<string name="ma_button_sync_accounts_now">Launch synchronization now</string>
<string name="ma_title_remote_account">Remote account</string>
<string name="choose_account">Choose account</string>
@ -198,7 +188,11 @@ Contributors and issue\'s reporters</string>
<string name="function_not_available">This function is not available yet.</string>
<string name="ui_notification_title_template">OcSMS: %1$s</string>
<string name="communicate">Communicate</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="action_share">Share</string>
<string name="action_reply">Reply</string>
<string name="navigation_drawer_open">Open navigation drawer</string>
<string name="navigation_drawer_close">Close navigation drawer</string>
<string name="ma_title_my_accounts">My accounts</string>
<string name="ma_content_swipeaction">Swipe from left to right to access to action menu</string>
</resources>

View File

@ -26,6 +26,7 @@
-->
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimaryDark">@color/oc_primary_dark</item>
<item name="colorPrimary">@color/oc_primary</item>
@ -34,6 +35,7 @@
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
<style name="StandardButton">
<item name="android:background">@color/oc_primary</item>
<item name="android:layout_marginTop">15dp</item>
@ -41,6 +43,7 @@
<item name="android:textColor">#ffffff</item>
<item name="android:padding">10dp</item>
</style>
<style name="h1">
<item name="android:textColor">@color/oc_primary_dark</item>
<item name="android:layout_marginTop">18dp</item>
@ -48,5 +51,14 @@
<item name="android:layout_height">wrap_content</item>
<item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
</style>
<style name="OcSmsTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="OcSmsTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
<style name="OcSmsTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>
</resources>