Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
lizhaotailang committed Dec 20, 2016
1 parent 4e6541b commit 7c63ff3
Show file tree
Hide file tree
Showing 17 changed files with 234 additions and 136 deletions.
12 changes: 6 additions & 6 deletions app/build.gradle
Expand Up @@ -4,7 +4,7 @@ android {
signingConfigs {
}
compileSdkVersion 25
buildToolsVersion "25.0.0"
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.marktony.zhihudaily"
minSdkVersion 15
Expand All @@ -25,11 +25,11 @@ android {
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('libs/library-1.0.19.jar')
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:design:25.0.1'
compile 'com.android.support:recyclerview-v7:25.0.1'
compile 'com.android.support:preference-v14:25.0.1'
compile 'com.android.support:customtabs:25.0.1'
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
compile 'com.android.support:recyclerview-v7:25.1.0'
compile 'com.android.support:preference-v14:25.1.0'
compile 'com.android.support:customtabs:25.1.0'
compile 'com.google.code.gson:gson:2.7'
compile 'com.squareup.okhttp3:okhttp:3.5.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
Expand Down
Expand Up @@ -37,7 +37,7 @@ public ZhihuDailyNewsAdapter(Context context, List<ZhihuDailyNews.Question> list

@Override
public LatestItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.zhihu_item_layout,parent,false);
View view = inflater.inflate(R.layout.zhihu_post_layout,parent,false);
return new LatestItemViewHolder(view,mListener);
}

Expand Down
@@ -0,0 +1,20 @@
package com.marktony.zhihudaily.bookmarks;

import com.marktony.zhihudaily.BasePresenter;
import com.marktony.zhihudaily.BaseView;

/**
* Created by lizhaotailang on 2016/12/20.
*/

public interface BookmarksContract {

interface View extends BaseView<Presenter> {

}

interface Presenter extends BasePresenter {

}

}
@@ -0,0 +1,62 @@
package com.marktony.zhihudaily.bookmarks;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

import com.marktony.zhihudaily.R;

/**
* Created by lizhaotailang on 2016/12/20.
*/

public class BookmarksFragment extends Fragment {

private RecyclerView recyclerView;

public BookmarksFragment() {}

public static BookmarksFragment newInstance() {
return new BookmarksFragment();
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_bookmarks, container, false);

setHasOptionsMenu(true);

initViews(view);

return view;
}

private void initViews(View view) {
Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_read, menu);
super.onCreateOptionsMenu(menu, inflater);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
return true;
}
}
121 changes: 58 additions & 63 deletions app/src/main/java/com/marktony/zhihudaily/homepage/MainActivity.java
@@ -1,50 +1,36 @@
package com.marktony.zhihudaily.homepage;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
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.util.Log;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.marktony.zhihudaily.R;
import com.marktony.zhihudaily.about.AboutPreferenceActivity;
import com.marktony.zhihudaily.app.App;
import com.marktony.zhihudaily.bookmarks.BookmarksFragment;
import com.marktony.zhihudaily.service.CacheService;
import com.marktony.zhihudaily.settings.SettingsPreferenceActivity;
import com.marktony.zhihudaily.util.Theme;


public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
implements NavigationView.OnNavigationItemSelectedListener{

private ViewGroup viewGroup;
private ImageView imageView;
private MainFragment fragment;
private MainFragment mainFragment;
private BookmarksFragment bookmarksFragment;

private DrawerLayout drawer;
private ActionBarDrawerToggle toggle;
private NavigationView navigationView;
private DrawerLayout drawer;
private Toolbar toolbar;

private final long ANIMATION_TIME = 1000;

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -54,63 +40,63 @@ protected void onCreate(Bundle savedInstanceState) {

// Theme.setStatusBarColor(this);

addFragment();
initViews();

startService(new Intent(this, CacheService.class));
navigationView.setCheckedItem(R.id.nav_home);

}
mainFragment = MainFragment.newInstance();
bookmarksFragment = BookmarksFragment.newInstance();

private void addFragment() {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if (fragment != null){
fragmentTransaction.remove(fragment);
}
fragment = MainFragment.newInstance();
fragmentTransaction.add(R.id.layout_fragment, fragment);
fragmentTransaction.commit();
showMainFragment();

}
startService(new Intent(this, CacheService.class));

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
private void initViews() {

int id = item.getItemId();
toolbar = (Toolbar) findViewById(R.id.toolbar);
drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);

if (id == R.id.action_change_theme) {
/*changeTheme();
save();
Theme.setStatusBarColor(this);*/
drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this,
drawer,
toolbar,
R.string.navigation_drawer_open,
R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();

} else if (id == R.id.action_settings) {
startActivity(new Intent(MainActivity.this,SettingsPreferenceActivity.class));
} else if (id == R.id.action_about) {
startActivity(new Intent(MainActivity.this,AboutPreferenceActivity.class));
}

private void showMainFragment() {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (!mainFragment.isAdded()) {
fragmentTransaction.add(R.id.layout_fragment, mainFragment, "MainFragment");
}
fragmentTransaction.show(mainFragment);
fragmentTransaction.hide(bookmarksFragment);
fragmentTransaction.commit();

return true;
}
toolbar.setTitle(getResources().getString(R.string.app_name));

private void initViews() {
}

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
private void showBookmarksFragment() {

drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (!bookmarksFragment.isAdded()) {
fragmentTransaction.add(R.id.layout_fragment, bookmarksFragment, "BookmarksFragment");
}
fragmentTransaction.show(bookmarksFragment);
fragmentTransaction.hide(mainFragment);
fragmentTransaction.commit();

navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
toolbar.setTitle(getResources().getString(R.string.nav_bookmarks));

}

Expand Down Expand Up @@ -176,7 +162,7 @@ public void onConfigurationChanged(Configuration newConfig) {
* 获取当前fragment状态
*/
/* public void getState() {
addFragment();
showMainFragment();
}*/


Expand Down Expand Up @@ -217,6 +203,15 @@ protected void onDestroy() {

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
return false;
int id = item.getItemId();
if (id == R.id.nav_home) {
showMainFragment();
} else if (id == R.id.nav_bookmarks) {
showBookmarksFragment();
}

drawer.closeDrawer(GravityCompat.START);
return true;
}

}
@@ -1,26 +1,26 @@
package com.marktony.zhihudaily.homepage;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.NavigationView;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

import com.marktony.zhihudaily.R;
import com.marktony.zhihudaily.about.AboutPreferenceActivity;
import com.marktony.zhihudaily.adapter.MainPagerAdapter;
import com.marktony.zhihudaily.settings.SettingsPreferenceActivity;

/**
* Created by Lizhaotailang on 2016/8/23.
Expand Down Expand Up @@ -63,6 +63,8 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,

initViews(view);

setHasOptionsMenu(true);

// 当tab layout位置为果壳精选时,隐藏fab
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
Expand Down Expand Up @@ -94,14 +96,40 @@ public void onTabReselected(TabLayout.Tab tab) {


private void initViews(View view) {

Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
((MainActivity)context).setSupportActionBar(toolbar);
tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
ViewPager viewPager = (ViewPager) view.findViewById(R.id.view_pager);
viewPager.setOffscreenPageLimit(3);

adapter = new MainPagerAdapter(getChildFragmentManager(), context);
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);

}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.main, menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();

if (id == R.id.action_change_theme) {
/*changeTheme();
save();
Theme.setStatusBarColor(this);*/

} else if (id == R.id.action_settings) {
startActivity(new Intent(getActivity(),SettingsPreferenceActivity.class));
} else if (id == R.id.action_about) {
startActivity(new Intent(getActivity(),AboutPreferenceActivity.class));
}
return true;
}

/*public interface OnViewPagerCreated {
Expand Down

0 comments on commit 7c63ff3

Please sign in to comment.