1
0
mirror of https://github.com/etesync/android synced 2025-02-11 15:13:03 +00:00
etesync-android/app/src/main/java/com/etesync/syncadapter/ui/AccountsActivity.java

158 lines
5.9 KiB
Java
Raw Normal View History

2016-01-15 00:07:56 +00:00
/*
* Copyright © 2013 2016 Ricki Hirner (bitfire web engineering).
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*/
package com.etesync.syncadapter.ui;
2016-01-15 00:07:56 +00:00
import android.content.ContentResolver;
2016-01-15 00:07:56 +00:00
import android.content.Intent;
import android.content.SyncStatusObserver;
2016-01-15 00:07:56 +00:00
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.NavigationView;
import android.support.design.widget.Snackbar;
2017-02-08 15:52:00 +00:00
import android.support.v4.app.FragmentTransaction;
2016-01-15 00:07:56 +00:00
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.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
2016-01-15 00:07:56 +00:00
import com.etesync.syncadapter.Constants;
import com.etesync.syncadapter.R;
import com.etesync.syncadapter.ui.setup.LoginActivity;
2016-01-15 00:07:56 +00:00
import static android.content.ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS;
import static com.etesync.syncadapter.BuildConfig.DEBUG;
import static com.etesync.syncadapter.Constants.serviceUrl;
public class AccountsActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, SyncStatusObserver {
private Snackbar syncStatusSnackbar;
private Object syncStatusObserver;
2016-01-15 00:07:56 +00:00
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_accounts);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
2016-01-15 00:07:56 +00:00
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
2016-01-15 00:07:56 +00:00
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(AccountsActivity.this, LoginActivity.class));
2016-01-15 00:07:56 +00:00
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
2016-01-15 00:07:56 +00:00
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
2016-01-15 00:07:56 +00:00
navigationView.setNavigationItemSelectedListener(this);
navigationView.setItemIconTintList(null);
2017-02-08 15:52:00 +00:00
if (savedInstanceState == null && !getPackageName().equals(getCallingPackage())) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
for (StartupDialogFragment fragment : StartupDialogFragment.getStartupDialogs(this))
ft.add(fragment, null);
ft.commit();
if (DEBUG) {
Toast.makeText(this, "Server: " + serviceUrl.toString(), Toast.LENGTH_SHORT).show();
}
2017-02-08 15:52:00 +00:00
}
2017-02-22 17:42:17 +00:00
PermissionsActivity.requestAllPermissions(this);
2016-01-15 00:07:56 +00:00
}
@Override
protected void onResume() {
super.onResume();
onStatusChanged(SYNC_OBSERVER_TYPE_SETTINGS);
syncStatusObserver = ContentResolver.addStatusChangeListener(SYNC_OBSERVER_TYPE_SETTINGS, this);
}
@Override
protected void onPause() {
super.onPause();
if (syncStatusObserver != null) {
ContentResolver.removeStatusChangeListener(syncStatusObserver);
syncStatusObserver = null;
}
}
@Override
public void onStatusChanged(int which) {
if (syncStatusSnackbar != null) {
syncStatusSnackbar.dismiss();
syncStatusSnackbar = null;
}
if (!ContentResolver.getMasterSyncAutomatically()) {
syncStatusSnackbar = Snackbar.make(findViewById(R.id.coordinator), R.string.accounts_global_sync_disabled, Snackbar.LENGTH_INDEFINITE)
.setAction(R.string.accounts_global_sync_enable, new View.OnClickListener() {
@Override
public void onClick(View v) {
ContentResolver.setMasterSyncAutomatically(true);
}
});
syncStatusSnackbar.show();
}
}
2016-01-15 00:07:56 +00:00
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
2016-01-15 00:07:56 +00:00
if (drawer.isDrawerOpen(GravityCompat.START))
drawer.closeDrawer(GravityCompat.START);
else
super.onBackPressed();
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.nav_about:
startActivity(new Intent(this, AboutActivity.class));
break;
case R.id.nav_app_settings:
startActivity(new Intent(this, AppSettingsActivity.class));
break;
2016-01-15 00:07:56 +00:00
case R.id.nav_website:
startActivity(new Intent(Intent.ACTION_VIEW, Constants.webUri));
break;
2017-02-28 14:14:18 +00:00
case R.id.nav_guide:
WebViewActivity.openUrl(this, Constants.helpUri);
2017-02-28 14:14:18 +00:00
break;
case R.id.nav_faq:
WebViewActivity.openUrl(this, Constants.faqUri);
break;
case R.id.nav_report_issue:
startActivity(new Intent(Intent.ACTION_VIEW, Constants.reportIssueUri));
break;
case R.id.nav_contact:
startActivity(new Intent(Intent.ACTION_VIEW, Constants.contactUri));
2016-01-15 00:07:56 +00:00
break;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
2016-01-15 00:07:56 +00:00
drawer.closeDrawer(GravityCompat.START);
return true;
}
}