Improve download

This commit is contained in:
seven332 committed 2016-02-26 14:09:01 +08:00
1 parent 41afc75cce
commit 61f09dc9f3
54 files changed
+3237 -214

No files matched your search

@@ -26,15 +26,18 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.NavigationView;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.Toast;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.Settings;
import com.hippo.ehviewer.client.EhUrlOpener;
import com.hippo.ehviewer.client.EhUtils;
import com.hippo.ehviewer.ui.scene.BaseScene;
import com.hippo.ehviewer.ui.scene.DownloadScene;
import com.hippo.ehviewer.ui.scene.GalleryListScene;
import com.hippo.ehviewer.ui.scene.LoginScene;
import com.hippo.ehviewer.ui.scene.WarningScene;
@@ -50,8 +53,12 @@ public final class MainActivity extends StageActivity
private static final String KEY_NAV_CHECKED_ITEM = "nav_checked_item";
@Nullable
private DrawerLayout mDrawerLayout;
@Nullable
private NavigationView mNavView;
@Nullable
private FrameLayout mRightDrawer;
private int mNavCheckedItem = 0;
@Override
@@ -66,8 +73,11 @@ public final class MainActivity extends StageActivity
mDrawerLayout = (DrawerLayout) findViewById(R.id.draw_view);
mNavView = (NavigationView) findViewById(R.id.nav_view);
mRightDrawer = (FrameLayout) findViewById(R.id.right_drawer);
mNavView.setNavigationItemSelectedListener(this);
if (mNavView != null) {
mNavView.setNavigationItemSelectedListener(this);
}
if (savedInstanceState == null) {
onInit();
@@ -76,6 +86,15 @@ public final class MainActivity extends StageActivity
}
}
@Override
protected void onDestroy() {
super.onDestroy();
mDrawerLayout = null;
mNavView = null;
mRightDrawer = null;
}
private boolean handleIntent(Intent intent) {
if (intent == null) {
return false;
@@ -126,10 +145,6 @@ public final class MainActivity extends StageActivity
}
private void onRestore(Bundle savedInstanceState) {
Log.d("TAG", "onRestore");
Log.d("TAG", "action = " + getIntent().getAction());
mNavCheckedItem = savedInstanceState.getInt(KEY_NAV_CHECKED_ITEM);
}
@@ -158,34 +173,69 @@ public final class MainActivity extends StageActivity
}
}
@Override
public void onSceneViewCreated(SceneFragment scene, Bundle savedInstanceState) {
super.onSceneViewCreated(scene, savedInstanceState);
if (scene instanceof BaseScene && mRightDrawer != null && mDrawerLayout != null) {
BaseScene baseScene = (BaseScene) scene;
mRightDrawer.removeAllViews();
View drawerView = baseScene.onCreateDrawerView(
getLayoutInflater(), mRightDrawer, savedInstanceState);
if (drawerView != null) {
mRightDrawer.addView(drawerView);
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.RIGHT);
} else {
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT);
}
}
}
@Override
public void onSceneViewDestroyed(SceneFragment scene) {
super.onSceneViewDestroyed(scene);
if (scene instanceof BaseScene) {
BaseScene baseScene = (BaseScene) scene;
baseScene.onDestroyDrawerView();
}
}
public void setDrawerLayoutEnable(boolean enable) {
if (enable) {
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
} else {
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
if (mDrawerLayout != null) {
if (enable) {
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
} else {
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
}
}
}
public void toggleDrawer(int drawerGravity) {
if (mDrawerLayout.isDrawerOpen(drawerGravity)) {
mDrawerLayout.closeDrawer(drawerGravity);
} else {
mDrawerLayout.openDrawer(drawerGravity);
if (mDrawerLayout != null) {
if (mDrawerLayout.isDrawerOpen(drawerGravity)) {
mDrawerLayout.closeDrawer(drawerGravity);
} else {
mDrawerLayout.openDrawer(drawerGravity);
}
}
}
public void setNavCheckedItem(@IdRes int resId) {
mNavCheckedItem = resId;
if (resId == 0) {
mNavView.setCheckedItem(R.id.nav_stub);
} else {
mNavView.setCheckedItem(resId);
if (mNavView != null) {
if (resId == 0) {
mNavView.setCheckedItem(R.id.nav_stub);
} else {
mNavView.setCheckedItem(resId);
}
}
}
@Override
public void onBackPressed() {
if (mDrawerLayout.isDrawerOpen(Gravity.LEFT) || mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) {
if (mDrawerLayout != null && (mDrawerLayout.isDrawerOpen(Gravity.LEFT) ||
mDrawerLayout.isDrawerOpen(Gravity.RIGHT))) {
mDrawerLayout.closeDrawers();
} else {
super.onBackPressed();
@@ -214,13 +264,13 @@ public final class MainActivity extends StageActivity
} else if (id == R.id.nav_history) {
} else if (id == R.id.nav_download) {
startScene(new Announcer(DownloadScene.class));
} else if (id == R.id.nav_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
}
if (id != R.id.nav_stub) {
if (id != R.id.nav_stub && mDrawerLayout != null) {
mDrawerLayout.closeDrawers();
}