package org.smartpaws; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.ImageView; import com.squareup.picasso.Callback; import com.squareup.picasso.LruCache; import com.squareup.picasso.NetworkPolicy; import com.squareup.picasso.OkHttpDownloader; import com.squareup.picasso.Picasso; import org.smartpaws.fragments.DealerFragment; import org.smartpaws.fragments.ErrorTbcFragment; import org.smartpaws.fragments.HomeFragment; import org.smartpaws.fragments.MapFragment; import org.smartpaws.fragments.TwitterFragment; import org.smartpaws.net.DataMan; import org.smartpaws.net.HttpClient; import org.smartpaws.net.ResponseHandler; import org.smartpaws.notifications.AlarmService; import org.smartpaws.notifications.ShutdownWakeReceiver; import org.smartpaws.util.ScreenDensity; import org.smartpaws.viewpager.DealerViewPager; import org.smartpaws.viewpager.GohViewPager; import org.smartpaws.viewpager.ReminderViewPager; import org.smartpaws.viewpager.ScheduleViewPager; import java.util.ArrayList; import java.util.List; import br.liveo.interfaces.NavigationLiveoListener; import br.liveo.navigationliveo.NavigationLiveo; public class MainActivity extends NavigationLiveo implements NavigationLiveoListener { public static final String APP_NAME = "org.smartpaws"; public static MainActivity INSTANCE; public static Picasso PICASSO; private final Fragment[] drawerFragments = new Fragment[7]; private final List<String> mListNameItem = new ArrayList<>(); private int currentFragment = 6; private int currentPos = -1; // TODO: Strip of NavigationLiveO usage @Override public void onUserInformation() { if (INSTANCE == null) INSTANCE = this; AlarmService.setContext(this); ShutdownWakeReceiver.loadReminders(); this.mUserName.setText("ConFuzzled"); this.mUserPhoto.setImageResource(R.drawable.logo_confuzzled); Picasso.Builder b = new Picasso.Builder(this); b.downloader(new OkHttpDownloader(this, 32 * 1024 * 1024)); // Cache is 32MB max b.defaultBitmapConfig(Bitmap.Config.RGB_565); PICASSO = b.build(); String picUri = HttpClient.BASE_URL + "img/" + DataMan.getSelectedConvention(this) + "/nav_header/" + ScreenDensity.getName() + ".jpg"; Bitmap cachedPic = DataMan.getDatabase().getImage(picUri); if (cachedPic == null) { MainActivity.PICASSO .load(picUri) .into(mUserBackground); } else { mUserBackground.setImageBitmap(cachedPic); } } @Override public void onInt(Bundle savedInstanceState) { INSTANCE = this; this.setNavigationListener(this); mListNameItem.add(0, getString(R.string.nav_schedule)); drawerFragments[0] = new ScheduleViewPager(); mListNameItem.add(1, getString(R.string.nav_goh)); drawerFragments[1] = new GohViewPager(); mListNameItem.add(2, getString(R.string.nav_dealers_den)); drawerFragments[2] = new DealerViewPager(); mListNameItem.add(3, getString(R.string.nav_twitter)); drawerFragments[3] = new TwitterFragment(); mListNameItem.add(4, getString(R.string.nav_maps)); drawerFragments[4] = new MapFragment(); mListNameItem.add(5, getString(R.string.nav_reminders)); drawerFragments[5] = new ReminderViewPager(); /*mListNameItem.add(5, getString(R.string.nav_local_area)); drawerFragments[5] = new ErrorTbcFragment();*/ drawerFragments[6] = new HomeFragment(); List<Integer> mListIconItem = new ArrayList<>(); mListIconItem.add(0, R.drawable.ic_timetable_grey600_24dp); mListIconItem.add(1, R.drawable.ic_star_grey600_24dp); mListIconItem.add(2, R.drawable.ic_cart_grey600_24dp); mListIconItem.add(3, R.drawable.ic_twitter_grey600_24dp); mListIconItem.add(4, R.drawable.ic_map_grey600_24dp); mListIconItem.add(5, R.drawable.ic_alarm_grey600_24dp); // mListIconItem.add(5, R.drawable.ic_city_grey600_24dp); this.setDefaultStartPositionNavigation(0); // TODO: User preferences, see GitHub issue #6 this.setFooterInformationDrawer(R.string.nav_about, 0); this.setNavigationAdapter(mListNameItem, mListIconItem, null, null); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); if (toolbar != null) { toolbar.setBackgroundColor(Color.parseColor("#36296D")); setSupportActionBar(toolbar); } } @Override public void onItemClickNavigation(int pos, int layoutContainerId) { Bundle bundle = new Bundle(); bundle.putInt("container_id", layoutContainerId); if (pos == 0) { if (currentPos == 0 || findViewById(layoutContainerId).findViewById(drawerFragments[6].getId()) != null) return; drawerFragments[6].setArguments(bundle); getSupportFragmentManager().beginTransaction().replace(layoutContainerId, drawerFragments[6]).commit(); } else { if (findViewById(layoutContainerId).findViewById(drawerFragments[pos-1].getId()) != null || currentFragment == pos-1) return; drawerFragments[pos-1].setArguments(bundle); currentFragment = pos-1; getSupportFragmentManager().beginTransaction().replace(layoutContainerId, drawerFragments[pos-1]).commit(); } currentPos = pos; } @Override public void onStop() { super.onStop(); ShutdownWakeReceiver.saveReminders(); } @Override public void onPrepareOptionsMenuNavigation(Menu menu, int i, boolean b) { } @Override public void onClickFooterItemNavigation(View view) { Intent intent = new Intent(); intent.setClass(MainActivity.this, AboutActivity.class); startActivityForResult(intent, 0); } @Override public void onClickUserPhotoNavigation(View view) { } }