Skip to content

Commit ca99b64

Browse files
author
wblt
committed
androidbase
1 parent dade27f commit ca99b64

File tree

173 files changed

+9288
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+9288
-0
lines changed

app/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

app/build.gradle

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
apply plugin: 'com.android.application'
2+
3+
android {
4+
compileSdkVersion 26
5+
buildToolsVersion "26.0.0"
6+
defaultConfig {
7+
applicationId "cn.tthud.taitian"
8+
minSdkVersion 19
9+
targetSdkVersion 26
10+
versionCode 1
11+
versionName "1.0"
12+
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13+
multiDexEnabled true
14+
}
15+
16+
dexOptions {
17+
incremental true
18+
javaMaxHeapSize "4g"
19+
}
20+
21+
buildTypes {
22+
release {
23+
minifyEnabled false
24+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
25+
}
26+
}
27+
dataBinding {
28+
enabled = true
29+
}
30+
}
31+
32+
dependencies {
33+
compile fileTree(include: ['*.jar'], dir: 'libs')
34+
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
35+
exclude group: 'com.android.support', module: 'support-annotations'
36+
})
37+
// compile 'com.android.support:appcompat-v7:26.+'
38+
compile 'com.android.support.constraint:constraint-layout:1.0.2'
39+
testCompile 'junit:junit:4.12'
40+
compile 'org.xutils:xutils:3.5.0'
41+
compile 'io.reactivex:rxandroid:1.2.0'
42+
compile 'io.reactivex:rxjava:1.1.5'
43+
compile 'com.android.support:design:25.3.1'
44+
compile 'com.google.code.gson:gson:2.8.2'
45+
compile files('libs/jdom.jar')
46+
compile 'jp.wasabeef:glide-transformations:2.0.1'
47+
compile 'com.android.support:multidex:1.0.1'
48+
compile 'com.lzy.net:okhttputils:1.6.5'
49+
compile 'ch.ielse:imagewatcher:1.0.1'
50+
compile project(':xrecyclerview')
51+
}

app/libs/jdom.jar

149 KB
Binary file not shown.

app/proguard-rules.pro

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Add project specific ProGuard rules here.
2+
# By default, the flags in this file are appended to flags specified
3+
# in /Users/wb/Library/Android/sdk/tools/proguard/proguard-android.txt
4+
# You can edit the include path and order by changing the proguardFiles
5+
# directive in build.gradle.
6+
#
7+
# For more details, see
8+
# http://developer.android.com/guide/developing/tools/proguard.html
9+
10+
# Add any project specific keep options here:
11+
12+
# If your project uses WebView with JS, uncomment the following
13+
# and specify the fully qualified class name to the JavaScript interface
14+
# class:
15+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16+
# public *;
17+
#}
18+
19+
# Uncomment this to preserve the line number information for
20+
# debugging stack traces.
21+
#-keepattributes SourceFile,LineNumberTable
22+
23+
# If you keep the line number information, uncomment this to
24+
# hide the original source file name.
25+
#-renamesourcefileattribute SourceFile

app/src/.DS_Store

6 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package cn.tthud.taitian;
2+
3+
import android.content.Context;
4+
import android.support.test.InstrumentationRegistry;
5+
import android.support.test.runner.AndroidJUnit4;
6+
7+
import org.junit.Test;
8+
import org.junit.runner.RunWith;
9+
10+
import static org.junit.Assert.*;
11+
12+
/**
13+
* Instrumentation test, which will execute on an Android device.
14+
*
15+
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
16+
*/
17+
@RunWith(AndroidJUnit4.class)
18+
public class ExampleInstrumentedTest {
19+
@Test
20+
public void useAppContext() throws Exception {
21+
// Context of the app under test.
22+
Context appContext = InstrumentationRegistry.getTargetContext();
23+
24+
assertEquals("cn.tthud.taitian", appContext.getPackageName());
25+
}
26+
}

app/src/main/.DS_Store

6 KB
Binary file not shown.

app/src/main/AndroidManifest.xml

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="cn.tthud.taitian">
4+
5+
<uses-permission android:name="android.permission.VIBRATE" />
6+
<uses-permission android:name="android.permission.INTERNET" />
7+
<uses-permission android:name="android.permission.RECORD_AUDIO" />
8+
<uses-permission android:name="android.permission.CAMERA" />
9+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
10+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
11+
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
12+
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
13+
<uses-permission android:name="android.permission.GET_TASKS" />
14+
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
15+
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
16+
<uses-permission android:name="android.permission.WAKE_LOCK" />
17+
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
18+
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
19+
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
20+
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
21+
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
22+
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
23+
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
24+
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
25+
<uses-permission android:name="android.permission.CALL_PHONE" />
26+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
27+
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
28+
29+
30+
<application
31+
android:name=".DemoApplication"
32+
android:allowBackup="true"
33+
android:icon="@mipmap/ic_launcher"
34+
android:label="@string/app_name"
35+
android:roundIcon="@mipmap/ic_launcher_round"
36+
android:supportsRtl="true"
37+
android:theme="@style/AppTheme">
38+
39+
<activity android:name=".SplashActivity"
40+
android:screenOrientation="portrait"
41+
android:theme="@style/ThemeSplash">>
42+
<intent-filter>
43+
<action android:name="android.intent.action.MAIN" />
44+
45+
<category android:name="android.intent.category.LAUNCHER" />
46+
</intent-filter>
47+
</activity>
48+
49+
<activity
50+
android:name=".MainActivity"
51+
android:launchMode="singleTask"
52+
android:screenOrientation="portrait"
53+
android:theme="@style/AppTheme"
54+
android:windowSoftInputMode="adjustPan" />
55+
56+
57+
58+
</application>
59+
60+
</manifest>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
package cn.tthud.taitian;
2+
3+
import android.app.Activity;
4+
import android.app.Application;
5+
import android.content.Context;
6+
import android.support.multidex.MultiDex;
7+
8+
import com.lzy.okhttputils.OkHttpUtils;
9+
10+
import org.xutils.x;
11+
12+
import java.io.File;
13+
import java.util.LinkedList;
14+
import java.util.List;
15+
16+
import cn.tthud.taitian.net.FlowAPI;
17+
18+
/**
19+
* Created by wb on 2017/10/7.
20+
*/
21+
22+
public class DemoApplication extends Application {
23+
24+
private List<Activity> mList = new LinkedList<>();
25+
26+
public static Context applicationContext;
27+
private static DemoApplication instance;
28+
private MainActivity mainActivity;
29+
30+
@Override
31+
public void onCreate() {
32+
MultiDex.install(this);
33+
super.onCreate();
34+
35+
applicationContext = this;
36+
instance = this;
37+
38+
// 初始化
39+
OkHttpUtils.init(this);
40+
41+
initTools();
42+
initExt();
43+
}
44+
45+
public static DemoApplication getInstance() {
46+
return instance;
47+
}
48+
49+
@Override
50+
protected void attachBaseContext(Context base) {
51+
super.attachBaseContext(base);
52+
MultiDex.install(this);
53+
}
54+
55+
public MainActivity getMainActivity() {
56+
return mainActivity;
57+
}
58+
59+
public void setMainActivity(MainActivity mainActivity) {
60+
this.mainActivity = mainActivity;
61+
}
62+
63+
public void addActivity(Activity activity){
64+
mList.add(activity);
65+
}
66+
67+
public void closeActivitys() {
68+
try {
69+
for (Activity activity : mList) {
70+
if (activity != null)
71+
activity.finish();
72+
}
73+
mList.clear();
74+
} catch (Exception e) {
75+
e.printStackTrace();
76+
}
77+
}
78+
79+
public void initTools(){
80+
String out_file_path = FlowAPI.YYW_FILE_PATH;
81+
File dir = new File(out_file_path);
82+
if (!dir.exists()) {
83+
dir.mkdirs();
84+
}
85+
}
86+
87+
public void exit() {
88+
try {
89+
for (Activity activity : mList) {
90+
if (activity != null)
91+
activity.finish();
92+
}
93+
} catch (Exception e) {
94+
e.printStackTrace();
95+
} finally {
96+
System.exit(0);
97+
}
98+
}
99+
100+
public void initExt(){
101+
x.Ext.init(this);
102+
x.Ext.setDebug(true);
103+
}
104+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
package cn.tthud.taitian;
2+
3+
import android.os.Bundle;
4+
import android.support.v4.app.Fragment;
5+
import android.support.v4.app.FragmentTransaction;
6+
import android.view.View;
7+
import android.widget.Button;
8+
import android.widget.TextView;
9+
10+
import cn.tthud.taitian.base.BaseActivity;
11+
import cn.tthud.taitian.fragment.ContactListFragment;
12+
import cn.tthud.taitian.fragment.DiscoverFragment;
13+
import cn.tthud.taitian.fragment.HomeFragment;
14+
import cn.tthud.taitian.fragment.MessageFragment;
15+
import cn.tthud.taitian.fragment.MineFragment;
16+
import cn.tthud.taitian.utils.CommonUtils;
17+
18+
public class MainActivity extends BaseActivity {
19+
// textview for unread message count
20+
private TextView unreadLabel;
21+
// textview for unread event message
22+
private TextView unreadAddressLable;
23+
private Button[] mTabs;
24+
private Fragment[] fragments;
25+
private int index;
26+
private int currentTabIndex;
27+
@Override
28+
protected void onCreate(Bundle savedInstanceState) {
29+
super.onCreate(savedInstanceState);
30+
setContentView(R.layout.activity_main);
31+
32+
initView();
33+
34+
HomeFragment homeFragment = new HomeFragment();
35+
DiscoverFragment disFragment = new DiscoverFragment();
36+
MineFragment mineFragment = new MineFragment();
37+
ContactListFragment contactListFragment = new ContactListFragment();
38+
MessageFragment messageFragment = new MessageFragment();
39+
40+
fragments = new Fragment[] {homeFragment,disFragment, messageFragment, contactListFragment, mineFragment};
41+
42+
getSupportFragmentManager().beginTransaction()
43+
.add(R.id.fragment_container, homeFragment)
44+
.add(R.id.fragment_container, disFragment)
45+
.add(R.id.fragment_container, messageFragment)
46+
.add(R.id.fragment_container, contactListFragment)
47+
.add(R.id.fragment_container, mineFragment)
48+
.hide(homeFragment)
49+
.hide(disFragment)
50+
.hide(messageFragment)
51+
.hide(contactListFragment)
52+
.hide(mineFragment)
53+
.show(homeFragment)
54+
.commit();
55+
}
56+
57+
/**
58+
* init views
59+
*/
60+
private void initView() {
61+
unreadLabel = (TextView) findViewById(R.id.unread_msg_number);
62+
unreadAddressLable = (TextView) findViewById(R.id.unread_address_number);
63+
mTabs = new Button[5];
64+
mTabs[0] = (Button) findViewById(R.id.btn_home);
65+
mTabs[1] = (Button) findViewById(R.id.btn_discover);
66+
mTabs[2] = (Button) findViewById(R.id.btn_conversation);
67+
mTabs[3] = (Button) findViewById(R.id.btn_address_list);
68+
mTabs[4] = (Button) findViewById(R.id.btn_mine);
69+
// select first tab
70+
mTabs[0].setSelected(true);
71+
}
72+
73+
/**
74+
* on tab clicked
75+
*
76+
* @param view
77+
*/
78+
public void onTabClicked(View view) {
79+
switch (view.getId()) {
80+
case R.id.btn_home:
81+
index = 0;
82+
break;
83+
case R.id.btn_discover:
84+
index = 1;
85+
break;
86+
case R.id.btn_conversation:
87+
index = 2;
88+
break;
89+
case R.id.btn_address_list:
90+
index = 3;
91+
break;
92+
case R.id.btn_mine:
93+
index = 4;
94+
break;
95+
}
96+
if (currentTabIndex != index) {
97+
FragmentTransaction trx = getSupportFragmentManager().beginTransaction();
98+
trx.hide(fragments[currentTabIndex]);
99+
if (!fragments[index].isAdded()) {
100+
trx.add(R.id.fragment_container, fragments[index]);
101+
}
102+
trx.show(fragments[index]).commit();
103+
}
104+
mTabs[currentTabIndex].setSelected(false);
105+
// set current tab selected
106+
mTabs[index].setSelected(true);
107+
currentTabIndex = index;
108+
}
109+
}

0 commit comments

Comments
 (0)