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) {
}
}