Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ android {
//javaMaxHeapSize "4g"
preDexLibraries false
}
dataBinding {
enabled = true
}
}

dependencies {
Expand Down Expand Up @@ -109,9 +112,11 @@ dependencies {
exclude module: 'library'
}
compile project(':library')
compile project(':rn')
} else {
compile project(':my')
compile project(':home')
compile project(':girls')
compile project(':rn')
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.dhc.flyabbit.di.component;

import com.dhc.flyabbit.ui.MainActivity;
import com.dhc.library.di.ActivityScope;
import com.dhc.library.di.component.AppComponent;
import com.dhc.library.di.module.ActivityModule;
Expand All @@ -16,7 +17,7 @@
public interface HActivityComponent {


// void inject(WelcomeActivity WelcomeActivity);
void inject(MainActivity mainActivity);
//

// void inject(HomeActivity homeActivity);
Expand Down
59 changes: 51 additions & 8 deletions app/src/main/java/com/dhc/flyabbit/ui/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
package com.dhc.flyabbit.ui;

import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.ViewGroup;
import android.view.KeyEvent;

import com.alibaba.android.arouter.facade.annotation.Route;
import com.dhc.flyabbit.R;
import com.dhc.library.utils.delegate.OnShowHomeListener;
import com.dhc.library.base.XDaggerActivity;
import com.dhc.flyabbit.di.HDiHelper;
import com.dhc.library.base.BaseActivity;
import com.dhc.library.data.SPHelper;
import com.dhc.library.data.net.Constants;
import com.dhc.library.utils.AppContext;
import com.dhc.library.utils.AppUtil;
import com.dhc.library.utils.ReactManagerFactory;
import com.dhc.library.utils.delegate.OnShowHomeListener;
import com.facebook.react.ReactInstanceManager;

import me.yokeyword.fragmentation.SupportFragment;
import me.yokeyword.fragmentation.helper.FragmentLifecycleCallbacks;
Expand All @@ -23,11 +30,10 @@
* 描述 ${主页面}
*/
@Route(path = "/app/MainActivity")
public class MainActivity extends XDaggerActivity implements OnShowHomeListener {

private ViewGroup mViewGroup;
private ViewGroup mContentView;

public class MainActivity extends BaseActivity implements OnShowHomeListener {
private static final int REDBOX_PERMISSION_MESSAGE =112 ;
private int OVERLAY_PERMISSION_REQ_CODE = 111;
protected ReactInstanceManager mReactInstanceManager;
@Override
protected int getLayout()
{
Expand All @@ -38,6 +44,21 @@ protected int getLayout()
protected void onCreate(@Nullable Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.canDrawOverlays(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);
}
}
if (Build.VERSION.SDK_INT >= 23) {
// Get permission to show redbox in dev builds.
if (!Settings.canDrawOverlays(this)) {
Intent serviceIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
this.startActivity(serviceIntent);
}
}
mReactInstanceManager= ReactManagerFactory.getReactInstanceManager();
}

@Override
Expand Down Expand Up @@ -78,6 +99,7 @@ public void onFragmentCreated(SupportFragment fragment, Bundle savedInstanceStat
}



@Override
public void onBackPressedSupport() {
super.onBackPressedSupport();
Expand All @@ -86,6 +108,7 @@ public void onBackPressedSupport() {
@Override
public void initInject(Bundle savedInstanceState) {
//TODO 依赖注入
HDiHelper.getActivityComponent(getActivityModule()).inject(this);
}


Expand All @@ -94,4 +117,24 @@ public void initInject(Bundle savedInstanceState) {
public void showHome() {
replaceLoadRootFragment(R.id.fl_container, MainFragment.newInstance(),true);
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU && mReactInstanceManager != null) {
mReactInstanceManager.showDevOptionsDialog();
return true;
}
return super.onKeyUp(keyCode, event);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == OVERLAY_PERMISSION_REQ_CODE) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.canDrawOverlays(this)) {
// SYSTEM_ALERT_WINDOW permission not granted...
}
}
}
}
}
20 changes: 13 additions & 7 deletions app/src/main/java/com/dhc/flyabbit/ui/MainFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@
import com.dhc.flyabbit.gank.ui.GankFragment;
import com.dhc.flyabbit.home.ui.HomeFragment;
import com.dhc.flyabbit.my.MyFragment;
import com.dhc.library.utils.delegate.OnBackToFirstListener;
import com.dhc.flyabbit.rn.ReactNativeFragment;
import com.dhc.library.base.XDaggerFragment;
import com.dhc.library.data.account.AccountManager;
import com.dhc.library.utils.delegate.OnBackToFirstListener;
import com.dhc.library.widget.bottombar.BottomBar;
import com.dhc.library.widget.bottombar.BottomBarTab;

Expand All @@ -27,13 +28,14 @@
public class MainFragment extends XDaggerFragment implements OnBackToFirstListener {

private BottomBar mBottomBar;
private String[] mTitles = {"干货", "妹子", "关于"};
private String[] mTitles = {"干货", "妹子","ReactNative", "关于"};
private int[] mIconUnselectIds = {
R.mipmap.ic_drawer_gank,
R.mipmap.ic_drawer_meizi, R.mipmap.ic_drawer_setting};
R.mipmap.ic_drawer_meizi, R.mipmap.ic_drawer_setting,R.mipmap.ic_drawer_setting};
public static final int FIRST = 0;
public static final int SECOND = 1;
public static final int THIRD = 2;
public static final int FOUR = 3;
public int current = -1;
private SupportFragment[] mFragments = new SupportFragment[4];

Expand All @@ -49,7 +51,8 @@ private void initView(View view) {
mBottomBar = (BottomBar) view.findViewById(R.id.bottomBar);
mBottomBar.addItem(new BottomBarTab(_mActivity, mIconUnselectIds[0], mTitles[0]))
.addItem(new BottomBarTab(_mActivity, mIconUnselectIds[1], mTitles[1]))
.addItem(new BottomBarTab(_mActivity, mIconUnselectIds[2], mTitles[2]));
.addItem(new BottomBarTab(_mActivity, mIconUnselectIds[2], mTitles[2]))
.addItem(new BottomBarTab(_mActivity, mIconUnselectIds[3], mTitles[3]));


mBottomBar.setOnTabSelectedListener(new BottomBar.OnTabSelectedListener() {
Expand Down Expand Up @@ -86,15 +89,18 @@ public void initInject(Bundle savedInstanceState) {
if (savedInstanceState == null) {
mFragments[FIRST] = HomeFragment.newInstance();
mFragments[SECOND] = GankFragment.newInstance();
mFragments[THIRD] = MyFragment.newInstance();
mFragments[THIRD] = ReactNativeFragment.newInstance();
mFragments[FOUR] = MyFragment.newInstance();
loadMultipleRootFragment(R.id.fl_tab_container, FIRST,
mFragments[FIRST],
mFragments[SECOND],
mFragments[THIRD]);
mFragments[THIRD],
mFragments[FOUR]);
} else {
mFragments[FIRST] = findChildFragment(HomeFragment.class);
mFragments[SECOND] = findChildFragment(GankFragment.class);
mFragments[THIRD] = findChildFragment(MyFragment.class);
mFragments[THIRD] = findChildFragment(ReactNativeFragment.class);
mFragments[FOUR] = findChildFragment(MyFragment.class);
}
}

Expand Down
6 changes: 4 additions & 2 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
Expand All @@ -11,4 +12,5 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
</LinearLayout>
</LinearLayout>
</layout>
4 changes: 4 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ allprojects {
jcenter()
mavenCentral()
maven { url "https://jitpack.io" }
maven {
// All of React Native (JS, Android binaries) is installed from npm
url "$rootDir/./rn/node_modules/react-native/android"
}
}
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
Expand Down
3 changes: 3 additions & 0 deletions girls/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ android {
}
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
dataBinding {
enabled = true
}
}

dependencies {
Expand Down
3 changes: 3 additions & 0 deletions home/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ android {
}
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
dataBinding {
enabled = true
}
}

dependencies {
Expand Down
2 changes: 1 addition & 1 deletion library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ dependencies {
provided rootProject.ext.dependencies["javax.annotation"]
annotationProcessor rootProject.ext.dependencies["dagger-compiler"] //dagger2的apt注解
annotationProcessor rootProject.ext.dependencies["arouter-compiler"] //阿里的Arouter的apt注解

compile "com.facebook.react:react-native:+" // From node_modules.
}


10 changes: 9 additions & 1 deletion library/src/main/java/com/dhc/library/base/BaseActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

import com.dhc.library.R;
import com.dhc.library.data.bean.ToolBarOptions;
import com.dhc.library.di.IDaggerListener;
import com.dhc.library.di.module.ActivityModule;
import com.dhc.library.utils.ToolbarUtil;
import com.dhc.library.utils.logger.KLog;
import com.tbruyelle.rxpermissions2.RxPermissions;
Expand All @@ -34,7 +36,7 @@
* 时间 :2016/11/15 16:08
* 描述 :无MVP的activity基类
*/
public abstract class BaseActivity extends SupportActivity implements LifecycleProvider<ActivityEvent> {
public abstract class BaseActivity extends SupportActivity implements LifecycleProvider<ActivityEvent>,IDaggerListener {
protected Context mContext;
private Toolbar toolbar;
public RxPermissions mRxPermissions;
Expand All @@ -48,6 +50,7 @@ public abstract class BaseActivity extends SupportActivity implements LifecycleP

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
initInject(savedInstanceState);
super.onCreate(savedInstanceState);
lifecycleSubject.onNext(ActivityEvent.CREATE);
if (getLayout() > 0) {
Expand All @@ -73,6 +76,11 @@ public void onClick(View view) {
});
}


protected ActivityModule getActivityModule() {
return new ActivityModule(this);
}

/**
* 设置标题栏
*
Expand Down
9 changes: 8 additions & 1 deletion library/src/main/java/com/dhc/library/base/BaseFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
import android.view.inputmethod.InputMethodManager;

import com.dhc.library.data.bean.ToolBarOptions;
import com.dhc.library.di.IDaggerListener;
import com.dhc.library.di.module.FragmentModule;
import com.dhc.library.utils.ToolbarUtil;
import com.dhc.library.utils.logger.KLog;
import com.tbruyelle.rxpermissions2.RxPermissions;
Expand All @@ -37,7 +39,7 @@
* 时间 :2016/11/15 16:08
* 描述 :无MVP的Fragment基类
*/
public abstract class BaseFragment extends SupportFragment implements LifecycleProvider<FragmentEvent> {
public abstract class BaseFragment extends SupportFragment implements LifecycleProvider<FragmentEvent>,IDaggerListener {
private static final Handler handler = new Handler();
private Toolbar toolbar;
protected View mView;
Expand Down Expand Up @@ -91,6 +93,7 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
int layoutId = getLayoutId();
if (layoutId > 0)
mView = inflater.inflate(layoutId, null);
initInject(savedInstanceState);
return mView;
}

Expand Down Expand Up @@ -175,6 +178,10 @@ public void onClick(View v) {
}
}

protected FragmentModule getFragmentModule() {
return new FragmentModule(this);
}

protected void doYouWantTodo(){

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
import android.os.Bundle;
import android.support.annotation.Nullable;

import com.dhc.library.di.IDaggerListener;
import com.dhc.library.di.module.ActivityModule;
import com.dhc.library.utils.ToastUtil;
import com.trello.rxlifecycle2.LifecycleTransformer;

Expand All @@ -17,13 +15,12 @@
* 时间 :2016/11/15 16:06
* 描述 :MVP activity基类
*/
public abstract class XDaggerActivity<T extends IBasePresenter> extends BaseActivity implements IBaseView ,IDaggerListener {
public abstract class XDaggerActivity<T extends IBasePresenter> extends BaseActivity implements IBaseView {
@Inject
protected T mPresenter;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
initInject(savedInstanceState);
if (mPresenter != null)
mPresenter.attachView(this);
super.onCreate(savedInstanceState);
Expand Down Expand Up @@ -59,9 +56,7 @@ public final void showToast(String msg) {
}


protected ActivityModule getActivityModule() {
return new ActivityModule(this);
}


@Override
protected void onDestroy() {
Expand Down
Loading