Skip to content

Commit 49c4954

Browse files
committed
added about screen
1 parent e906705 commit 49c4954

File tree

16 files changed

+282
-32
lines changed

16 files changed

+282
-32
lines changed

app/build.gradle

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
apply plugin: 'com.android.application'
22

3+
apply plugin: 'com.google.android.gms.oss-licenses-plugin'
4+
35
apply plugin: 'kotlin-android'
46

57
apply plugin: 'kotlin-kapt'
@@ -16,7 +18,7 @@ android {
1618
minSdkVersion 19
1719
targetSdkVersion 29
1820
versionCode 1
19-
versionName "1.0"
21+
versionName "v-0.0001"
2022
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2123
multiDexEnabled true
2224
vectorDrawables.useSupportLibrary true
@@ -138,9 +140,11 @@ dependencies {
138140
implementation("io.coil-kt:coil:0.7.0")
139141

140142
implementation 'com.codemybrainsout.onboarding:onboarder:1.0.4'
141-
compile 'com.github.mukeshsolanki:country-picker-android:2.0.1'
143+
implementation 'com.github.mukeshsolanki:country-picker-android:2.0.1'
142144

143145
implementation 'com.github.QuadFlask:colorpicker:0.0.13'
144146
implementation 'org.sufficientlysecure:html-textview:3.6'
147+
148+
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
145149
}
146150
apply plugin: 'com.google.gms.google-services'

app/src/main/AndroidManifest.xml

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<uses-permission android:name="android.permission.INTERNET" />
1212

1313
<application
14-
android:name="playground.develop.socialnote.base.NotesApplication"
14+
android:name=".base.NotesApplication"
1515
android:allowBackup="true"
1616
android:fullBackupContent="true"
1717
android:icon="@mipmap/ic_launcher"
@@ -20,7 +20,12 @@
2020
android:supportsRtl="true"
2121
android:theme="@style/AppTheme">
2222
<activity
23-
android:name="playground.develop.socialnote.ui.SplashActivity"
23+
android:name=".ui.AboutActivity"
24+
android:label="@string/about_menu_item_label"
25+
android:parentActivityName=".ui.HomeActivity"
26+
android:theme="@style/EditorTheme" />
27+
<activity
28+
android:name=".ui.SplashActivity"
2429
android:theme="@style/SplashTheme">
2530
<intent-filter>
2631
<action android:name="android.intent.action.MAIN" />
@@ -32,31 +37,29 @@
3237
android:name="android.app.shortcuts"
3338
android:resource="@xml/app_shortcuts" />
3439
</activity>
35-
<activity android:name="playground.develop.socialnote.ui.OnBoardingActivity">
36-
37-
</activity>
38-
<activity android:name="playground.develop.socialnote.ui.ProfileActivity" />
39-
<activity android:name="playground.develop.socialnote.ui.LikesActivity" />
40+
<activity android:name=".ui.OnBoardingActivity" />
41+
<activity android:name=".ui.ProfileActivity" />
42+
<activity android:name=".ui.LikesActivity" />
4043
<activity
41-
android:name="playground.develop.socialnote.ui.CommentActivity"
44+
android:name=".ui.CommentActivity"
4245
android:label="@string/comments_toolbar_label"
43-
android:parentActivityName="playground.develop.socialnote.ui.FeedActivity"
46+
android:parentActivityName=".ui.FeedActivity"
4447
android:theme="@style/EditorTheme" />
4548
<activity
46-
android:name="playground.develop.socialnote.ui.CreatePostActivity"
47-
android:parentActivityName="playground.develop.socialnote.ui.FeedActivity"
49+
android:name=".ui.CreatePostActivity"
50+
android:parentActivityName=".ui.FeedActivity"
4851
android:theme="@style/EditorTheme" />
4952
<activity
50-
android:name="playground.develop.socialnote.ui.FeedActivity"
53+
android:name=".ui.FeedActivity"
5154
android:launchMode="singleTop" />
52-
<activity android:name="playground.develop.socialnote.ui.SettingsActivity" />
55+
<activity android:name=".ui.SettingsActivity" />
5356

5457
<meta-data
5558
android:name="com.google.android.geo.API_KEY"
5659
android:value="@string/google_maps_key" />
5760

5861
<receiver
59-
android:name="playground.develop.socialnote.receiver.RebootReceiver"
62+
android:name=".receiver.RebootReceiver"
6063
android:directBootAware="true"
6164
tools:targetApi="n">
6265
<intent-filter>
@@ -65,28 +68,28 @@
6568
</intent-filter>
6669
</receiver>
6770
<receiver
68-
android:name="playground.develop.socialnote.receiver.NoteReminderReceiver"
71+
android:name=".receiver.NoteReminderReceiver"
6972
android:enabled="true">
7073
<intent-filter>
7174
<action android:name="android.intent.action.BOOT_COMPLETED" />
7275
</intent-filter>
7376
</receiver>
74-
<receiver android:name="playground.develop.socialnote.receiver.GeofenceReminderReceiver" />
75-
<receiver android:name="playground.develop.socialnote.receiver.NotificationReceiver" />
77+
<receiver android:name=".receiver.GeofenceReminderReceiver" />
78+
<receiver android:name=".receiver.NotificationReceiver" />
7679

7780
<activity
78-
android:name="playground.develop.socialnote.ui.GeofencePickerActivity"
81+
android:name=".ui.GeofencePickerActivity"
7982
android:label="@string/title_activity_location_map_actitivty">
8083
<meta-data
8184
android:name="android.support.PARENT_ACTIVITY"
8285
android:value="playground.develop.socialnote.ui.AddEditNoteActivity" />
8386
</activity>
84-
<activity android:name="playground.develop.socialnote.ui.RegisterActivity" />
87+
<activity android:name=".ui.RegisterActivity" />
8588
<activity
86-
android:name="playground.develop.socialnote.ui.AddEditNoteActivity"
87-
android:parentActivityName="playground.develop.socialnote.ui.HomeActivity"
89+
android:name=".ui.AddEditNoteActivity"
90+
android:parentActivityName=".ui.HomeActivity"
8891
android:theme="@style/EditorTheme" />
89-
<activity android:name="playground.develop.socialnote.ui.HomeActivity" />
92+
<activity android:name=".ui.HomeActivity" />
9093
<activity
9194
android:name="com.facebook.FacebookActivity"
9295
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
@@ -112,19 +115,19 @@
112115
android:value="@string/facebook_app_id" />
113116

114117
<service
115-
android:name="playground.develop.socialnote.services.GeofenceService"
118+
android:name=".services.GeofenceService"
116119
android:exported="false"
117120
android:permission="android.permission.BIND_JOB_SERVICE" />
118121
<service
119-
android:name="playground.develop.socialnote.services.TimeReminderService"
122+
android:name=".services.TimeReminderService"
120123
android:exported="false"
121124
android:permission="android.permission.BIND_JOB_SERVICE" />
122125
<service
123-
android:name="playground.develop.socialnote.services.SyncingService"
126+
android:name=".services.SyncingService"
124127
android:exported="false"
125128
android:permission="android.permission.BIND_JOB_SERVICE" />
126129
<service
127-
android:name="playground.develop.socialnote.services.FMService"
130+
android:name=".services.FMService"
128131
android:exported="false">
129132
<intent-filter>
130133
<action android:name="com.google.firebase.MESSAGING_EVENT" />
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
package playground.develop.socialnote.ui
2+
3+
import android.content.Intent
4+
import android.content.pm.ApplicationInfo
5+
import android.content.pm.PackageManager
6+
import android.graphics.Paint
7+
import android.net.Uri
8+
import android.os.Bundle
9+
import android.view.View
10+
import androidx.appcompat.app.AppCompatActivity
11+
import androidx.databinding.DataBindingUtil
12+
import coil.api.load
13+
import coil.transform.CircleCropTransformation
14+
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
15+
import org.jetbrains.anko.intentFor
16+
import playground.develop.socialnote.BuildConfig
17+
import playground.develop.socialnote.R
18+
import playground.develop.socialnote.databinding.ActivityAboutBinding
19+
import playground.develop.socialnote.utils.Constants.Companion.APP_FACEBOOK_URL
20+
import playground.develop.socialnote.utils.Constants.Companion.APP_TWITTER_ID
21+
import playground.develop.socialnote.utils.Constants.Companion.APP_TWITTER_URL
22+
23+
24+
class AboutActivity : AppCompatActivity() {
25+
26+
private lateinit var mBinding: ActivityAboutBinding
27+
override fun onCreate(savedInstanceState: Bundle?) {
28+
super.onCreate(savedInstanceState)
29+
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_about)
30+
mBinding.handlers = this
31+
setupLicensesText()
32+
setupAppVersionText()
33+
setupAppLogo()
34+
}
35+
36+
private fun setupAppLogo() {
37+
mBinding.appLogoImage.load(R.drawable.logo) {
38+
crossfade(true)
39+
transformations(CircleCropTransformation())
40+
}
41+
}
42+
43+
private fun setupAppVersionText() {
44+
val appVersion = BuildConfig.VERSION_NAME
45+
mBinding.appVersion.text = appVersion
46+
}
47+
48+
private fun setupLicensesText() {
49+
mBinding.licensesText.paintFlags = mBinding.licensesText.paintFlags or Paint.UNDERLINE_TEXT_FLAG
50+
}
51+
52+
fun onLicensesClick(view: View) {
53+
startActivity(intentFor<OssLicensesMenuActivity>())
54+
}
55+
56+
fun onFacebookButtonClick(view: View) {
57+
val intent = getFacebookIntent()
58+
startActivity(intent)
59+
}
60+
61+
private fun getFacebookIntent(): Intent {
62+
try {
63+
if (getFacebookApplicationInfo().enabled) {
64+
val facebookUri = Uri.parse("fb://facewebmodal/f?href=$APP_FACEBOOK_URL")
65+
return Intent(Intent.ACTION_VIEW, facebookUri)
66+
}
67+
} catch (e: PackageManager.NameNotFoundException) {
68+
69+
}
70+
71+
return Intent(Intent.ACTION_VIEW, Uri.parse(APP_FACEBOOK_URL))
72+
}
73+
74+
fun onTwitterButtonClick(view: View) {
75+
startActivity(getTwitterIntent())
76+
}
77+
78+
private fun getTwitterIntent(): Intent {
79+
var twitterIntent: Intent? = null
80+
try {
81+
if (getTwitterApplicationInfo().enabled) {
82+
twitterIntent = Intent(Intent.ACTION_VIEW,
83+
Uri.parse("twitter://user?user_id=$APP_TWITTER_ID"))
84+
twitterIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
85+
}
86+
} catch (e: PackageManager.NameNotFoundException) {
87+
twitterIntent = Intent(Intent.ACTION_VIEW, Uri.parse(APP_TWITTER_URL))
88+
}
89+
90+
return twitterIntent!!
91+
}
92+
93+
@Throws(PackageManager.NameNotFoundException::class)
94+
private fun getFacebookApplicationInfo(): ApplicationInfo {
95+
return packageManager.getApplicationInfo("com.facebook.katana", 0)
96+
}
97+
98+
@Throws(PackageManager.NameNotFoundException::class)
99+
private fun getTwitterApplicationInfo(): ApplicationInfo {
100+
return packageManager.getApplicationInfo("com.twitter.android", 0)
101+
}
102+
}

app/src/main/java/playground/develop/socialnote/ui/HomeActivity.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,10 +297,15 @@ class HomeActivity : AppCompatActivity(), MaterialSearchView.OnQueryTextListener
297297
}
298298
R.id.logoutMenuItem -> showUserLogoutDialog()
299299
R.id.loginMenuItem -> startRegisterActivity()
300+
R.id.aboutMenuItem -> startAboutActivity()
300301
}
301302
return true
302303
}
303304

305+
private fun startAboutActivity() {
306+
startActivity(intentFor<AboutActivity>())
307+
}
308+
304309
private fun startRegisterActivity() {
305310
startActivity(intentFor<RegisterActivity>(CONSIDER_REGISTER_KEY to CONSIDER_REGISTER_KEY))
306311
finish()

app/src/main/java/playground/develop/socialnote/utils/Constants.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ package playground.develop.socialnote.utils
66
class Constants {
77

88
companion object {
9+
const val APP_FACEBOOK_URL = "https://www.facebook.com/flyingsocialnote"
10+
const val APP_TWITTER_ID = 1172239785076899840
11+
const val APP_TWITTER_URL = "https://twitter.com/social_note"
912

1013
const val APP_PREFERENCE_NAME = "playground.develop.socialnote"
1114
const val FIRST_LAUNCH_KEY = "playground.develop.socialnote.utils.first_launch_key"
7.94 KB
Loading
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24">
6+
<path
7+
android:fillColor="#455a64"
8+
android:pathData="M20,11H23V13H20V11M1,11H4V13H1V11M13,1V4H11V1H13M4.92,3.5L7.05,5.64L5.63,7.05L3.5,4.93L4.92,3.5M16.95,5.63L19.07,3.5L20.5,4.93L18.37,7.05L16.95,5.63M12,6A6,6 0 0,1 18,12C18,14.22 16.79,16.16 15,17.2V19A1,1 0 0,1 14,20H10A1,1 0 0,1 9,19V17.2C7.21,16.16 6,14.22 6,12A6,6 0 0,1 12,6M14,21V22A1,1 0 0,1 13,23H11A1,1 0 0,1 10,22V21H14M11,18H13V15.87C14.73,15.43 16,13.86 16,12A4,4 0 0,0 12,8A4,4 0 0,0 8,12C8,13.86 9.27,15.43 11,15.87V18Z" />
9+
</vector>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="50dp"
3+
android:height="50dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24">
6+
<path
7+
android:fillColor="#4267B2"
8+
android:pathData="M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M18,5H15.5A3.5,3.5 0 0,0 12,8.5V11H10V14H12V21H15V14H18V11H15V9A1,1 0 0,1 16,8H18V5Z" />
9+
</vector>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="50dp"
3+
android:height="50dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24">
6+
<path
7+
android:fillColor="#1DA1F2"
8+
android:pathData="M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.7,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z" />
9+
</vector>

0 commit comments

Comments
 (0)