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
13 changes: 6 additions & 7 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,6 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />

<application
android:name=".App"
android:allowBackup="true"
Expand All @@ -20,8 +15,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".activity.MainActivity">

<activity android:name=".activity.Main2Activity">
</activity>
<activity android:name=".activity.ContentActivity" />
<activity android:name=".activity.StartActivity">
Expand All @@ -30,11 +25,15 @@

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

</activity>
<activity android:name=".activity.LoginActivity">

</activity>
<activity android:name=".activity.UserActivity">

</activity>


</application>

</manifest>
120 changes: 120 additions & 0 deletions app/src/main/java/com/fy/weibo/APPManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
package com.fy.weibo;

import android.app.Activity;
import android.content.Context;
import android.util.Log;

import java.util.Stack;

/**
* Created by Fan on 2018/8/29.
* Fighting!!!
*/
public class APPManager {


private static Stack<Activity> activityStack;
private static APPManager instance;

private APPManager(){}

public static synchronized APPManager getInstance() {
if (instance == null) {
instance = new APPManager();
}

return instance;
}

public synchronized void addActivity(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<>();
}
activityStack.add(activity);
Log.e("TAG", "ActivityManager添加了:" + activity.getClass().getName());
}

/**
* 获取当前Activity(堆栈中最后一个压入的)
*/
public Activity currentActivity() {
return activityStack.lastElement();
}

/**
* 结束当前Activity(堆栈中最后一个压入的)
*/
public void finishCurrentActivity() {
finishActivity(activityStack.lastElement());
Log.e("TAG", "被结束");
}

/**
* 移除最后一个Activity
*/
public void removeActivity(Activity activity) {
if (activity != null) {
activityStack.remove(activity);
Log.i("TAG", "ActivityManager移除了:" + activity.getClass().getName());
}
}

/**
* 结束指定的Activity
*/
public void finishActivity(Activity activity) {
if (activity != null) {
activityStack.remove(activity);
activity.finish();
Log.i("TAG", "ActivityManager关闭了:" + activity.getClass().getName());
}
}

/**
* 结束指定类名的Activity
*/
public void finishActivity(Class<?> cls) {
for (int i = 0; i < activityStack.size(); i++) {
if (activityStack.get(i).getClass().equals(cls)) {
finishActivity(activityStack.get(i));
removeActivity(activityStack.get(i));
return;
}
}
}


/**
* 结束所有Activity
*/
public void finishAllActivity() {
for (Activity activity : activityStack) {
if (activity != null) {
Log.e("TAG", activity.getClass().getName() + "被结束");
activity.finish();
}
}
activityStack.clear();
}

public void finishBeforeActivity() {
for (int i = 0; i < activityStack.size() - 1; i++) {
activityStack.get(i).finish();
removeActivity(activityStack.get(i));

}
}


/**
* 退出应用程序
*/
public void AppExit(Context context) {
try {
finishAllActivity();
System.exit(0);
} catch (Exception e) {
e.printStackTrace();
}
}
}
5 changes: 5 additions & 0 deletions app/src/main/java/com/fy/weibo/App.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.fy.weibo;

import android.app.Application;
import android.util.Log;

import com.fy.weibo.sdk.Constants;
import com.sina.weibo.sdk.WbSdk;
Expand All @@ -19,8 +20,12 @@ public void onCreate() {
super.onCreate();
appInstance = this;
WbSdk.install(this, new AuthInfo(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE));
}

public static Application getAppInstance() {
return appInstance;
}

}

/*
Expand Down
57 changes: 2 additions & 55 deletions app/src/main/java/com/fy/weibo/Base/BaseActivity.java
Original file line number Diff line number Diff line change
@@ -1,60 +1,7 @@
package com.fy.weibo.Base;
package com.fy.weibo.base;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;

import com.fy.weibo.R;
import com.fy.weibo.interfaces.IView;

import java.util.Map;

/**
* Created by Fan on 2018/8/12.
* Fighting!!!
*/
public abstract class BaseActivity<T> extends AppCompatActivity implements IView<T>{


protected BasePresenter presenter;
public abstract void loadData();
public abstract int getLayoutId();
public abstract void initView();
public abstract void initPresenter();


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutId());
initView();
initPresenter();
loadData();
}

@Override
public void showError(final String e) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(BaseActivity.this, e, Toast.LENGTH_SHORT).show();
}
});
}

@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.in_from_left, R.anim.out_to_right);
}

@Override
protected void onDestroy() {
super.onDestroy();
presenter = null;
}
public abstract class BaseActivity extends AppCompatActivity {
}



44 changes: 24 additions & 20 deletions app/src/main/java/com/fy/weibo/Base/BaseFragment.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.fy.weibo.Base;

package com.fy.weibo.base;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Looper;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
Expand All @@ -13,47 +13,47 @@
import android.view.ViewGroup;
import android.widget.Toast;

import com.fy.weibo.interfaces.IView;

import java.util.List;
import java.util.Map;

/**
* Created by Fan on 2018/7/30.
* Created by Fan on 2018/8/28.
* Fighting!!!
*/
public abstract class BaseFragment<T> extends Fragment implements IView<T>{

public abstract class BaseFragment extends Fragment {

protected BasePresenter presenter;
protected abstract void loadData();
public abstract void initPresenter();
public abstract int getContentViewId();
public abstract void initAllMembersView(Bundle saveInstanceState);

protected Toast toast;
public Context mContext;
public View mRootView;
protected Activity mActivity;

public void loadData(){}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

mRootView = inflater.inflate(getContentViewId(), container, false);
checkActivityAttachContext();
this.mContext = getActivity();
initPresenter();
return mRootView;
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initAllMembersView(savedInstanceState);
initData();
loadData();
return mRootView;
}

@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext = context;
mActivity = (Activity) context;
}

public void showError(String e) {
if (isAttachContext()) {
toast = Toast.makeText(mContext, e, Toast.LENGTH_SHORT);
toast.show();
}

}

Expand All @@ -65,7 +65,7 @@ protected boolean isAttachContext() {
public void checkActivityAttachContext() {

if (getActivity() == null) {
throw new ActivityNotAttachedException();
throw new BaseMVPFragment.ActivityNotAttachedException();
}
}
public FragmentActivity getAttachActivity() {
Expand All @@ -87,4 +87,8 @@ public void hideLoading() {

}

public void initData() {

}

}
Loading