From c49a0989612d6ab53399305e86155873318ad48b Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Mon, 7 Mar 2016 21:25:36 +0100 Subject: [PATCH] Rewrite application navigation to a better user experience --- .../owncloud_sms/activities/MainActivity.java | 153 ++++++------------ src/main/res/drawable-v21/ic_menu_manage.xml | 9 ++ src/main/res/drawable-v21/ic_menu_send.xml | 9 ++ src/main/res/drawable-v21/ic_menu_share.xml | 9 ++ src/main/res/drawable/next_arrow.png | Bin 30694 -> 0 bytes src/main/res/drawable/side_nav_bar.xml | 9 ++ src/main/res/layout/activity_main.xml | 56 ++++++- .../fragment_mainactivity_gotosettings.xml | 120 -------------- .../res/layout/fragment_mainactivity_main.xml | 73 --------- .../fragment_mainactivity_thanks_note.xml | 83 ---------- src/main/res/layout/nav_header_main.xml | 27 ++++ src/main/res/menu/activity_main_drawer.xml | 32 ++++ src/main/res/values-cs/strings.xml | 9 +- src/main/res/values-de/strings.xml | 3 +- src/main/res/values-en/strings.xml | 12 +- src/main/res/values-es/strings.xml | 1 + src/main/res/values-fr/strings.xml | 12 +- src/main/res/values-sr/strings.xml | 8 +- src/main/res/values-sv/strings.xml | 22 +-- src/main/res/values-v21/styles.xml | 9 ++ src/main/res/values/dimens.xml | 4 + src/main/res/values/drawables.xml | 7 + src/main/res/values/strings.xml | 18 +-- src/main/res/values/styles.xml | 14 +- 24 files changed, 257 insertions(+), 442 deletions(-) create mode 100644 src/main/res/drawable-v21/ic_menu_manage.xml create mode 100644 src/main/res/drawable-v21/ic_menu_send.xml create mode 100644 src/main/res/drawable-v21/ic_menu_share.xml delete mode 100644 src/main/res/drawable/next_arrow.png create mode 100644 src/main/res/drawable/side_nav_bar.xml delete mode 100644 src/main/res/layout/fragment_mainactivity_gotosettings.xml delete mode 100644 src/main/res/layout/fragment_mainactivity_main.xml delete mode 100644 src/main/res/layout/fragment_mainactivity_thanks_note.xml create mode 100644 src/main/res/layout/nav_header_main.xml create mode 100644 src/main/res/menu/activity_main_drawer.xml create mode 100644 src/main/res/values/drawables.xml diff --git a/src/main/java/fr/unix_experience/owncloud_sms/activities/MainActivity.java b/src/main/java/fr/unix_experience/owncloud_sms/activities/MainActivity.java index 5068573..1790cd5 100644 --- a/src/main/java/fr/unix_experience/owncloud_sms/activities/MainActivity.java +++ b/src/main/java/fr/unix_experience/owncloud_sms/activities/MainActivity.java @@ -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 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 mFragments; + @Override + public boolean onNavigationItemSelected(MenuItem item) { + int id = item.getItemId(); + boolean res = true; - public MainPagerAdapter(FragmentManager fragmentManager, List 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; } } diff --git a/src/main/res/drawable-v21/ic_menu_manage.xml b/src/main/res/drawable-v21/ic_menu_manage.xml new file mode 100644 index 0000000..065d9fa --- /dev/null +++ b/src/main/res/drawable-v21/ic_menu_manage.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/src/main/res/drawable-v21/ic_menu_send.xml b/src/main/res/drawable-v21/ic_menu_send.xml new file mode 100644 index 0000000..a554657 --- /dev/null +++ b/src/main/res/drawable-v21/ic_menu_send.xml @@ -0,0 +1,9 @@ + + + diff --git a/src/main/res/drawable-v21/ic_menu_share.xml b/src/main/res/drawable-v21/ic_menu_share.xml new file mode 100644 index 0000000..8151b38 --- /dev/null +++ b/src/main/res/drawable-v21/ic_menu_share.xml @@ -0,0 +1,9 @@ + + + diff --git a/src/main/res/drawable/next_arrow.png b/src/main/res/drawable/next_arrow.png deleted file mode 100644 index 1ff381937f7aa6810eb0deb14e3f98879f1158fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30694 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 l|L=GF|GcjiJuH=0oer#fOInr{f&^e*lFzx&;6L diff --git a/src/main/res/drawable/side_nav_bar.xml b/src/main/res/drawable/side_nav_bar.xml new file mode 100644 index 0000000..5ac4dad --- /dev/null +++ b/src/main/res/drawable/side_nav_bar.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/src/main/res/layout/activity_main.xml b/src/main/res/layout/activity_main.xml index 2a43cf4..864713a 100644 --- a/src/main/res/layout/activity_main.xml +++ b/src/main/res/layout/activity_main.xml @@ -25,9 +25,59 @@ */ --> - + android:fitsSystemWindows="true" + tools:openDrawer="start" + xmlns:app="http://schemas.android.com/apk/res-auto"> + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/res/layout/fragment_mainactivity_gotosettings.xml b/src/main/res/layout/fragment_mainactivity_gotosettings.xml deleted file mode 100644 index 291abaa..0000000 --- a/src/main/res/layout/fragment_mainactivity_gotosettings.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - -