diff --git a/app/build.gradle b/app/build.gradle
index 56ad35bf..be16906b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -24,8 +24,8 @@ android {
applicationId "com.h.pixeldroid"
minSdkVersion 23
targetSdkVersion 30
- versionCode 7
- versionName "1.0.alpha6"
+ versionCode 8
+ versionName "1.0.alpha7"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments clearPackageData: 'true'
diff --git a/app/src/androidTest/java/com/h/pixeldroid/CameraTest.kt b/app/src/androidTest/java/com/h/pixeldroid/CameraTest.kt
index c2e53180..e5ca9d0f 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/CameraTest.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/CameraTest.kt
@@ -9,9 +9,9 @@ import androidx.test.core.app.ApplicationProvider
import androidx.test.espresso.intent.Intents
import androidx.test.espresso.intent.matcher.IntentMatchers
import androidx.test.rule.GrantPermissionRule
-import com.h.pixeldroid.db.entities.InstanceDatabaseEntity
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
-import com.h.pixeldroid.fragments.CameraFragment
+import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.postCreation.camera.CameraFragment
import com.h.pixeldroid.testUtility.clearData
import com.h.pixeldroid.testUtility.initDB
import kotlinx.android.synthetic.main.camera_ui_container.*
diff --git a/app/src/androidTest/java/com/h/pixeldroid/DrawerMenuTest.kt b/app/src/androidTest/java/com/h/pixeldroid/DrawerMenuTest.kt
index 150b590a..dde1f96c 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/DrawerMenuTest.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/DrawerMenuTest.kt
@@ -12,9 +12,9 @@ import androidx.test.espresso.matcher.ViewMatchers.*
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import androidx.test.uiautomator.UiDevice
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.entities.InstanceDatabaseEntity
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
import com.h.pixeldroid.testUtility.MockServer
import com.h.pixeldroid.testUtility.clearData
import com.h.pixeldroid.testUtility.initDB
diff --git a/app/src/androidTest/java/com/h/pixeldroid/EditPhotoTest.kt b/app/src/androidTest/java/com/h/pixeldroid/EditPhotoTest.kt
index 0cde48c0..356cbd3b 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/EditPhotoTest.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/EditPhotoTest.kt
@@ -23,6 +23,7 @@ import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.GrantPermissionRule
import com.google.android.material.tabs.TabLayout
import com.h.pixeldroid.adapters.ThumbnailAdapter
+import com.h.pixeldroid.settings.AboutActivity
import com.h.pixeldroid.testUtility.CustomMatchers
import com.h.pixeldroid.testUtility.clearData
import junit.framework.Assert.assertTrue
diff --git a/app/src/androidTest/java/com/h/pixeldroid/HomeFeedTest.kt b/app/src/androidTest/java/com/h/pixeldroid/HomeFeedTest.kt
index c4b49076..e1ca7855 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/HomeFeedTest.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/HomeFeedTest.kt
@@ -11,10 +11,10 @@ import androidx.test.espresso.contrib.RecyclerViewActions.scrollToPosition
import androidx.test.espresso.matcher.ViewMatchers.*
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.android.material.tabs.TabLayout
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.entities.InstanceDatabaseEntity
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
-import com.h.pixeldroid.fragments.StatusViewHolder
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.posts.StatusViewHolder
import com.h.pixeldroid.testUtility.CustomMatchers.Companion.atPosition
import com.h.pixeldroid.testUtility.CustomMatchers.Companion.clickChildViewWithId
import com.h.pixeldroid.testUtility.CustomMatchers.Companion.first
diff --git a/app/src/androidTest/java/com/h/pixeldroid/IntentTest.kt b/app/src/androidTest/java/com/h/pixeldroid/IntentTest.kt
index 87fe9641..fc1a9226 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/IntentTest.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/IntentTest.kt
@@ -23,12 +23,13 @@ import androidx.test.espresso.intent.matcher.IntentMatchers
import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.rule.ActivityTestRule
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.entities.InstanceDatabaseEntity
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
-import com.h.pixeldroid.fragments.StatusViewHolder
-import com.h.pixeldroid.objects.Account
-import com.h.pixeldroid.objects.Account.Companion.ACCOUNT_TAG
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.posts.StatusViewHolder
+import com.h.pixeldroid.utils.api.objects.Account
+import com.h.pixeldroid.utils.api.objects.Account.Companion.ACCOUNT_TAG
+import com.h.pixeldroid.settings.AboutActivity
import com.h.pixeldroid.testUtility.MockServer
import com.h.pixeldroid.testUtility.clearData
import com.h.pixeldroid.testUtility.initDB
diff --git a/app/src/androidTest/java/com/h/pixeldroid/LoginActivityOfflineTest.kt b/app/src/androidTest/java/com/h/pixeldroid/LoginActivityOfflineTest.kt
index 9f1dc4d2..2e976997 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/LoginActivityOfflineTest.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/LoginActivityOfflineTest.kt
@@ -1,27 +1,5 @@
package com.h.pixeldroid
-import android.content.Context
-import androidx.test.core.app.ActivityScenario
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.espresso.Espresso.onView
-import androidx.test.espresso.action.ViewActions.click
-import androidx.test.espresso.assertion.ViewAssertions.matches
-import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
-import androidx.test.espresso.matcher.ViewMatchers.withId
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
-import androidx.test.uiautomator.UiDevice
-import androidx.test.uiautomator.UiSelector
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.testUtility.clearData
-import com.h.pixeldroid.testUtility.initDB
-import org.junit.After
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.rules.Timeout
-import org.junit.runner.RunWith
-
/*
@RunWith(AndroidJUnit4::class)
class LoginActivityOfflineTest {
diff --git a/app/src/androidTest/java/com/h/pixeldroid/LoginActivityOnlineTest.kt b/app/src/androidTest/java/com/h/pixeldroid/LoginActivityOnlineTest.kt
index bafffc8a..35ece520 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/LoginActivityOnlineTest.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/LoginActivityOnlineTest.kt
@@ -16,9 +16,9 @@ import androidx.test.espresso.matcher.ViewMatchers.hasErrorText
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.entities.InstanceDatabaseEntity
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
import com.h.pixeldroid.testUtility.MockServer
import com.h.pixeldroid.testUtility.clearData
import com.h.pixeldroid.testUtility.initDB
diff --git a/app/src/androidTest/java/com/h/pixeldroid/PostCreationFragmentTest.kt b/app/src/androidTest/java/com/h/pixeldroid/PostCreationFragmentTest.kt
index 82e73224..4dea5921 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/PostCreationFragmentTest.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/PostCreationFragmentTest.kt
@@ -16,9 +16,9 @@ import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.GrantPermissionRule
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.entities.InstanceDatabaseEntity
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
import com.h.pixeldroid.testUtility.MockServer
import com.h.pixeldroid.testUtility.clearData
import com.h.pixeldroid.testUtility.initDB
diff --git a/app/src/androidTest/java/com/h/pixeldroid/PostTest.kt b/app/src/androidTest/java/com/h/pixeldroid/PostTest.kt
index 8289fc7c..1086efc5 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/PostTest.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/PostTest.kt
@@ -13,10 +13,11 @@ import androidx.test.espresso.matcher.ViewMatchers.*
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.entities.InstanceDatabaseEntity
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
-import com.h.pixeldroid.objects.*
+import com.h.pixeldroid.posts.PostActivity
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.api.objects.*
import com.h.pixeldroid.testUtility.MockServer
import com.h.pixeldroid.testUtility.clearData
import com.h.pixeldroid.testUtility.initDB
diff --git a/app/src/androidTest/java/com/h/pixeldroid/testUtility/DbHelpers.kt b/app/src/androidTest/java/com/h/pixeldroid/testUtility/DbHelpers.kt
index 8788316d..57d84765 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/testUtility/DbHelpers.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/testUtility/DbHelpers.kt
@@ -2,7 +2,7 @@ package com.h.pixeldroid.testUtility
import android.content.Context
import androidx.room.Room
-import com.h.pixeldroid.db.AppDatabase
+import com.h.pixeldroid.utils.db.AppDatabase
import org.ligi.tracedroid.TraceDroid
diff --git a/app/src/androidTest/java/com/h/pixeldroid/testUtility/JsonValues.kt b/app/src/androidTest/java/com/h/pixeldroid/testUtility/JsonValues.kt
index 731bb1fe..ecfb5368 100644
--- a/app/src/androidTest/java/com/h/pixeldroid/testUtility/JsonValues.kt
+++ b/app/src/androidTest/java/com/h/pixeldroid/testUtility/JsonValues.kt
@@ -1,7 +1,7 @@
package com.h.pixeldroid.testUtility
import com.google.gson.Gson
-import com.h.pixeldroid.objects.Application
+import com.h.pixeldroid.utils.api.objects.Application
class JsonValues {
companion object {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2c6d8ed9..c1eb1ea0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
-
+
-
+
@@ -105,13 +105,13 @@
android:resource="@xml/searchable" />
diff --git a/app/src/main/java/com/h/pixeldroid/LoginActivity.kt b/app/src/main/java/com/h/pixeldroid/LoginActivity.kt
index f87a05cc..1e33af91 100644
--- a/app/src/main/java/com/h/pixeldroid/LoginActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/LoginActivity.kt
@@ -11,11 +11,13 @@ import android.util.Log
import android.view.View
import android.view.inputmethod.InputMethodManager
import androidx.browser.customtabs.CustomTabsIntent
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.objects.*
-import com.h.pixeldroid.utils.DBUtils
-import com.h.pixeldroid.utils.Utils
-import com.h.pixeldroid.utils.Utils.Companion.normalizeDomain
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.utils.db.addUser
+import com.h.pixeldroid.utils.db.storeInstance
+import com.h.pixeldroid.utils.api.objects.*
+import com.h.pixeldroid.utils.BaseActivity
+import com.h.pixeldroid.utils.hasInternet
+import com.h.pixeldroid.utils.normalizeDomain
import io.reactivex.Single
import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -67,7 +69,7 @@ class LoginActivity : BaseActivity() {
oauthScheme = getString(R.string.auth_scheme)
preferences = getSharedPreferences("$PACKAGE_ID.pref", Context.MODE_PRIVATE)
- if (Utils.hasInternet(applicationContext)) {
+ if (hasInternet(applicationContext)) {
connect_instance_button.setOnClickListener {
registerAppToServer(normalizeDomain(editText.text.toString()))
}
@@ -269,7 +271,7 @@ class LoginActivity : BaseActivity() {
return failedRegistration(getString(R.string.instance_error))
}
- DBUtils.storeInstance(db, instance)
+ storeInstance(db, instance)
storeUser(token.access_token, token.refresh_token, clientId, clientSecret, instance.uri)
wipeSharedSettings()
}
@@ -311,7 +313,7 @@ class LoginActivity : BaseActivity() {
if (response.body() != null && response.isSuccessful) {
db.userDao().deActivateActiveUsers()
val user = response.body() as Account
- DBUtils.addUser(
+ addUser(
db,
user,
instance,
diff --git a/app/src/main/java/com/h/pixeldroid/MainActivity.kt b/app/src/main/java/com/h/pixeldroid/MainActivity.kt
index 01c05d2d..cd71db9a 100644
--- a/app/src/main/java/com/h/pixeldroid/MainActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/MainActivity.kt
@@ -16,16 +16,19 @@ import androidx.paging.ExperimentalPagingApi
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.bumptech.glide.Glide
import com.google.android.material.tabs.TabLayoutMediator
-import com.h.pixeldroid.db.entities.HomeStatusDatabaseEntity
-import com.h.pixeldroid.db.entities.PublicFeedStatusDatabaseEntity
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
-import com.h.pixeldroid.fragments.CameraFragment
-import com.h.pixeldroid.fragments.SearchDiscoverFragment
-import com.h.pixeldroid.fragments.feeds.cachedFeeds.notifications.NotificationsFragment
-import com.h.pixeldroid.fragments.feeds.cachedFeeds.postFeeds.PostFeedFragment
-import com.h.pixeldroid.objects.Account
-import com.h.pixeldroid.utils.DBUtils
-import com.h.pixeldroid.utils.Utils.Companion.hasInternet
+import com.h.pixeldroid.utils.db.addUser
+import com.h.pixeldroid.postCreation.camera.CameraFragment
+import com.h.pixeldroid.utils.db.entities.HomeStatusDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.PublicFeedStatusDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.posts.feeds.cachedFeeds.notifications.NotificationsFragment
+import com.h.pixeldroid.posts.feeds.cachedFeeds.postFeeds.PostFeedFragment
+import com.h.pixeldroid.utils.api.objects.Account
+import com.h.pixeldroid.profile.ProfileActivity
+import com.h.pixeldroid.searchDiscover.SearchDiscoverFragment
+import com.h.pixeldroid.settings.SettingsActivity
+import com.h.pixeldroid.utils.BaseActivity
+import com.h.pixeldroid.utils.hasInternet
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
import com.mikepenz.materialdrawer.iconics.iconicsIcon
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem
@@ -193,7 +196,7 @@ class MainActivity : BaseActivity() {
) {
if (response.body() != null && response.isSuccessful) {
val account = response.body() as Account
- DBUtils.addUser(db, account, domain, accessToken = accessToken, refreshToken = refreshToken, clientId = clientId, clientSecret = clientSecret)
+ addUser(db, account, domain, accessToken = accessToken, refreshToken = refreshToken, clientId = clientId, clientSecret = clientSecret)
fillDrawerAccountInfo(account.id!!)
}
}
diff --git a/app/src/main/java/com/h/pixeldroid/interfaces/EditImageFragmentListener.kt b/app/src/main/java/com/h/pixeldroid/interfaces/EditImageFragmentListener.kt
deleted file mode 100644
index 3c743123..00000000
--- a/app/src/main/java/com/h/pixeldroid/interfaces/EditImageFragmentListener.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.h.pixeldroid.interfaces
-
-interface EditImageFragmentListener {
- fun onBrightnessChange(brightness: Int)
-
- fun onSaturationChange(saturation: Float)
-
- fun onContrastChange(contrast: Float)
-
- fun onEditStarted()
-
- fun onEditCompleted()
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/interfaces/FilterListFragmentListener.kt b/app/src/main/java/com/h/pixeldroid/interfaces/FilterListFragmentListener.kt
deleted file mode 100644
index f0df513e..00000000
--- a/app/src/main/java/com/h/pixeldroid/interfaces/FilterListFragmentListener.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.h.pixeldroid.interfaces
-
-import com.zomato.photofilters.imageprocessors.Filter
-
-interface FilterListFragmentListener {
- fun onFilterSelected(filter: Filter)
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/interfaces/PostCreationListener.kt b/app/src/main/java/com/h/pixeldroid/interfaces/PostCreationListener.kt
deleted file mode 100644
index d1970ece..00000000
--- a/app/src/main/java/com/h/pixeldroid/interfaces/PostCreationListener.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.h.pixeldroid.interfaces
-
-interface PostCreationListener {
- fun onClick(position: Int)
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Context.kt b/app/src/main/java/com/h/pixeldroid/objects/Context.kt
deleted file mode 100644
index f64b78af..00000000
--- a/app/src/main/java/com/h/pixeldroid/objects/Context.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.h.pixeldroid.objects
-
-import java.io.Serializable
-
-data class Context(
- val ancestors : List,
- val descendants : List
-) : Serializable
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/PostCreationActivity.kt b/app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt
similarity index 95%
rename from app/src/main/java/com/h/pixeldroid/PostCreationActivity.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt
index 28e974bc..88a65673 100644
--- a/app/src/main/java/com/h/pixeldroid/PostCreationActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.postCreation
import android.app.Activity
import android.content.Intent
@@ -16,13 +16,16 @@ import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.google.android.material.textfield.TextInputLayout
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
-import com.h.pixeldroid.interfaces.PostCreationListener
-import com.h.pixeldroid.objects.Attachment
-import com.h.pixeldroid.objects.Instance
-import com.h.pixeldroid.objects.Status
-import com.h.pixeldroid.utils.ProgressRequestBody
+import com.h.pixeldroid.utils.BaseActivity
+import com.h.pixeldroid.MainActivity
+import com.h.pixeldroid.R
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.postCreation.camera.CameraActivity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.api.objects.Attachment
+import com.h.pixeldroid.utils.api.objects.Instance
+import com.h.pixeldroid.utils.api.objects.Status
+import com.h.pixeldroid.postCreation.photoEdit.PhotoEditActivity
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
@@ -37,7 +40,7 @@ private val TAG = "Post Creation Activity"
private val MORE_PICTURES_REQUEST_CODE = 0xffff
-class PostCreationActivity : BaseActivity(), PostCreationListener {
+class PostCreationActivity : BaseActivity() {
private lateinit var recycler : RecyclerView
private lateinit var adapter : PostCreationAdapter
@@ -95,7 +98,6 @@ class PostCreationActivity : BaseActivity(), PostCreationListener {
upload()
adapter = PostCreationAdapter(posts)
- adapter.listener = this
recycler = findViewById(R.id.image_grid)
recycler.layoutManager = GridLayoutManager(this, 3)
recycler.adapter = adapter
@@ -252,7 +254,7 @@ class PostCreationActivity : BaseActivity(), PostCreationListener {
}
- override fun onClick(position: Int) {
+ fun onClick(position: Int) {
positionResult = position
val intent = Intent(this, PhotoEditActivity::class.java)
@@ -296,7 +298,6 @@ class PostCreationActivity : BaseActivity(), PostCreationListener {
}
inner class PostCreationAdapter(private val posts: ArrayList): RecyclerView.Adapter() {
- var listener: PostCreationListener? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view =
@@ -335,7 +336,7 @@ class PostCreationActivity : BaseActivity(), PostCreationListener {
.into(itemView.galleryImage)
// adding click or tap handler for the image layout
itemView.setOnClickListener {
- listener?.onClick(adapterPosition)
+ this@PostCreationActivity.onClick(adapterPosition)
}
}
diff --git a/app/src/main/java/com/h/pixeldroid/utils/ProgressRequestBody.kt b/app/src/main/java/com/h/pixeldroid/postCreation/ProgressRequestBody.kt
similarity index 97%
rename from app/src/main/java/com/h/pixeldroid/utils/ProgressRequestBody.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/ProgressRequestBody.kt
index 6a5cbb19..62587bea 100644
--- a/app/src/main/java/com/h/pixeldroid/utils/ProgressRequestBody.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/ProgressRequestBody.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.utils
+package com.h.pixeldroid.postCreation
import io.reactivex.Observable
import io.reactivex.subjects.PublishSubject
diff --git a/app/src/main/java/com/h/pixeldroid/utils/SquareLayout.kt b/app/src/main/java/com/h/pixeldroid/postCreation/SquareLayout.kt
similarity index 79%
rename from app/src/main/java/com/h/pixeldroid/utils/SquareLayout.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/SquareLayout.kt
index 25bab4fe..a93dd3f0 100644
--- a/app/src/main/java/com/h/pixeldroid/utils/SquareLayout.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/SquareLayout.kt
@@ -1,10 +1,8 @@
-package com.h.pixeldroid.utils
+package com.h.pixeldroid.postCreation
-import android.widget.RelativeLayout
-import android.os.Build
-import android.annotation.TargetApi
import android.content.Context
import android.util.AttributeSet
+import android.widget.RelativeLayout
internal class SquareLayout(context: Context, attrs: AttributeSet) :
RelativeLayout(context, attrs) {
diff --git a/app/src/main/java/com/h/pixeldroid/CameraActivity.kt b/app/src/main/java/com/h/pixeldroid/postCreation/camera/CameraActivity.kt
similarity index 86%
rename from app/src/main/java/com/h/pixeldroid/CameraActivity.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/camera/CameraActivity.kt
index fd12ece6..9a57109e 100644
--- a/app/src/main/java/com/h/pixeldroid/CameraActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/camera/CameraActivity.kt
@@ -1,7 +1,8 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.postCreation.camera
import android.os.Bundle
-import com.h.pixeldroid.fragments.CameraFragment
+import com.h.pixeldroid.utils.BaseActivity
+import com.h.pixeldroid.R
class CameraActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/CameraFragment.kt b/app/src/main/java/com/h/pixeldroid/postCreation/camera/CameraFragment.kt
similarity index 99%
rename from app/src/main/java/com/h/pixeldroid/fragments/CameraFragment.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/camera/CameraFragment.kt
index ba4b5eb8..3f8bafd6 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/CameraFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/camera/CameraFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments
+package com.h.pixeldroid.postCreation.camera
import android.Manifest
import android.app.Activity
@@ -31,8 +31,8 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
-import com.h.pixeldroid.PostCreationActivity
import com.h.pixeldroid.R
+import com.h.pixeldroid.postCreation.PostCreationActivity
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.io.File
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/EditImageFragment.kt b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/EditImageFragment.kt
similarity index 93%
rename from app/src/main/java/com/h/pixeldroid/fragments/EditImageFragment.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/EditImageFragment.kt
index a854a8f7..594d1c93 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/EditImageFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/EditImageFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments
+package com.h.pixeldroid.postCreation.photoEdit
import android.os.Bundle
import androidx.fragment.app.Fragment
@@ -7,11 +7,10 @@ import android.view.View
import android.view.ViewGroup
import android.widget.SeekBar
import com.h.pixeldroid.R
-import com.h.pixeldroid.interfaces.EditImageFragmentListener
class EditImageFragment : Fragment(), SeekBar.OnSeekBarChangeListener {
- private var listener: EditImageFragmentListener? = null
+ private var listener: PhotoEditActivity? = null
private lateinit var seekbarBrightness: SeekBar
private lateinit var seekbarSaturation: SeekBar
@@ -86,7 +85,7 @@ class EditImageFragment : Fragment(), SeekBar.OnSeekBarChangeListener {
listener!!.onEditCompleted()
}
- fun setListener(listener: EditImageFragmentListener) {
+ fun setListener(listener: PhotoEditActivity) {
this.listener = listener
}
}
diff --git a/app/src/main/java/com/h/pixeldroid/adapters/EditPhotoViewPagerAdapter.kt b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/EditPhotoViewPagerAdapter.kt
similarity index 86%
rename from app/src/main/java/com/h/pixeldroid/adapters/EditPhotoViewPagerAdapter.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/EditPhotoViewPagerAdapter.kt
index b37ecb75..06a7a57c 100644
--- a/app/src/main/java/com/h/pixeldroid/adapters/EditPhotoViewPagerAdapter.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/EditPhotoViewPagerAdapter.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.adapters
+package com.h.pixeldroid.postCreation.photoEdit
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
@@ -19,7 +19,7 @@ class EditPhotoViewPagerAdapter (manager: FragmentManager):
fragmentTitleList.add(title)
}
- override fun getPageTitle(position: Int): CharSequence? {
+ override fun getPageTitle(position: Int): CharSequence {
return fragmentTitleList[position]
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/FilterListFragment.kt b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/FilterListFragment.kt
similarity index 83%
rename from app/src/main/java/com/h/pixeldroid/fragments/FilterListFragment.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/FilterListFragment.kt
index 9d687a98..020dbd02 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/FilterListFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/FilterListFragment.kt
@@ -1,36 +1,28 @@
-package com.h.pixeldroid.fragments
+package com.h.pixeldroid.postCreation.photoEdit
import android.graphics.Bitmap
-import android.graphics.ImageDecoder
-import android.os.Build
import android.os.Bundle
import android.provider.MediaStore
-import android.util.Log
import android.util.TypedValue
-import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import androidx.core.graphics.decodeBitmap
+import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
-import com.h.pixeldroid.PhotoEditActivity
import com.h.pixeldroid.R
-import com.h.pixeldroid.adapters.ThumbnailAdapter
-import com.h.pixeldroid.interfaces.FilterListFragmentListener
-import com.h.pixeldroid.utils.SpaceItemDecoration
import com.zomato.photofilters.FilterPack
import com.zomato.photofilters.imageprocessors.Filter
import com.zomato.photofilters.utils.ThumbnailItem
import com.zomato.photofilters.utils.ThumbnailsManager
-class FilterListFragment : Fragment(), FilterListFragmentListener {
+class FilterListFragment : Fragment() {
- internal lateinit var recyclerView: RecyclerView
- internal var listener : FilterListFragmentListener? = null
+ private lateinit var recyclerView: RecyclerView
+ private var listener : PhotoEditActivity? = null
internal lateinit var adapter: ThumbnailAdapter
- internal lateinit var tbItemList: MutableList
+ private lateinit var tbItemList: MutableList
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@@ -107,13 +99,13 @@ class FilterListFragment : Fragment(), FilterListFragmentListener {
}
}
- override fun onFilterSelected(filter: Filter) {
+ fun onFilterSelected(filter: Filter) {
if(listener != null ){
listener!!.onFilterSelected(filter)
}
}
- fun setListener(listFragmentListener: FilterListFragmentListener) {
+ fun setListener(listFragmentListener: PhotoEditActivity) {
this.listener = listFragmentListener
}
}
diff --git a/app/src/main/java/com/h/pixeldroid/utils/NonSwipeableViewPager.kt b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/NonSwipeableViewPager.kt
similarity index 96%
rename from app/src/main/java/com/h/pixeldroid/utils/NonSwipeableViewPager.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/NonSwipeableViewPager.kt
index faff962e..5fecbf38 100644
--- a/app/src/main/java/com/h/pixeldroid/utils/NonSwipeableViewPager.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/NonSwipeableViewPager.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.utils
+package com.h.pixeldroid.postCreation.photoEdit
import android.content.Context
import android.util.AttributeSet
diff --git a/app/src/main/java/com/h/pixeldroid/PhotoEditActivity.kt b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/PhotoEditActivity.kt
similarity index 95%
rename from app/src/main/java/com/h/pixeldroid/PhotoEditActivity.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/PhotoEditActivity.kt
index c325f6ea..8f15b44c 100644
--- a/app/src/main/java/com/h/pixeldroid/PhotoEditActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/PhotoEditActivity.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.postCreation.photoEdit
import android.app.Activity
import android.app.AlertDialog
@@ -29,12 +29,9 @@ import com.bumptech.glide.Glide
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.tabs.TabLayout
-import com.h.pixeldroid.adapters.EditPhotoViewPagerAdapter
-import com.h.pixeldroid.fragments.EditImageFragment
-import com.h.pixeldroid.fragments.FilterListFragment
-import com.h.pixeldroid.interfaces.EditImageFragmentListener
-import com.h.pixeldroid.interfaces.FilterListFragmentListener
-import com.h.pixeldroid.utils.NonSwipeableViewPager
+import com.h.pixeldroid.utils.BaseActivity
+import com.h.pixeldroid.R
+import com.h.pixeldroid.postCreation.PostCreationActivity
import com.yalantis.ucrop.UCrop
import com.zomato.photofilters.imageprocessors.Filter
import com.zomato.photofilters.imageprocessors.subfilters.BrightnessSubFilter
@@ -58,9 +55,9 @@ private const val REQUEST_CODE_PERMISSIONS_SEND_PHOTO = 7
private val REQUIRED_PERMISSIONS = arrayOf(android.Manifest.permission.READ_EXTERNAL_STORAGE,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
-class PhotoEditActivity : BaseActivity(), FilterListFragmentListener, EditImageFragmentListener {
+class PhotoEditActivity : BaseActivity() {
- internal var saving: Boolean = false
+ private var saving: Boolean = false
private val BITMAP_CONFIG = Bitmap.Config.ARGB_8888
private val BRIGHTNESS_START = 0
private val SATURATION_START = 1.0f
@@ -76,8 +73,8 @@ class PhotoEditActivity : BaseActivity(), FilterListFragmentListener, EditImageF
private lateinit var filterListFragment: FilterListFragment
private lateinit var editImageFragment: EditImageFragment
- lateinit var viewPager: NonSwipeableViewPager
- lateinit var tabLayout: TabLayout
+ private lateinit var viewPager: NonSwipeableViewPager
+ private lateinit var tabLayout: TabLayout
private var brightnessFinal = BRIGHTNESS_START
private var saturationFinal = SATURATION_START
@@ -189,7 +186,7 @@ class PhotoEditActivity : BaseActivity(), FilterListFragmentListener, EditImageF
}
//
- override fun onFilterSelected(filter: Filter) {
+ fun onFilterSelected(filter: Filter) {
resetControls()
filteredImage = compressedOriginalImage!!.copy(BITMAP_CONFIG, true)
image_preview.setImageBitmap(filter.processFilter(filteredImage))
@@ -219,21 +216,21 @@ class PhotoEditActivity : BaseActivity(), FilterListFragmentListener, EditImageF
}
}
- override fun onBrightnessChange(brightness: Int) {
+ fun onBrightnessChange(brightness: Int) {
brightnessFinal = brightness
val myFilter = Filter()
myFilter.addEditFilters(brightness, saturationFinal, contrastFinal)
applyFilterAndShowImage(myFilter, filteredImage)
}
- override fun onSaturationChange(saturation: Float) {
+ fun onSaturationChange(saturation: Float) {
saturationFinal = saturation
val myFilter = Filter()
myFilter.addEditFilters(brightnessFinal, saturation, contrastFinal)
applyFilterAndShowImage(myFilter, filteredImage)
}
- override fun onContrastChange(contrast: Float) {
+ fun onContrastChange(contrast: Float) {
contrastFinal = contrast
val myFilter = Filter()
myFilter.addEditFilters(brightnessFinal, saturationFinal, contrast)
@@ -247,10 +244,10 @@ class PhotoEditActivity : BaseActivity(), FilterListFragmentListener, EditImageF
return this
}
- override fun onEditStarted() {
+ fun onEditStarted() {
}
- override fun onEditCompleted() {
+ fun onEditCompleted() {
val myFilter = Filter()
myFilter.addEditFilters(brightnessFinal, saturationFinal, contrastFinal)
val bitmap = filteredImage.copy(BITMAP_CONFIG, true)
diff --git a/app/src/main/java/com/h/pixeldroid/utils/SpaceItemDecoration.kt b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/SpaceItemDecoration.kt
similarity index 92%
rename from app/src/main/java/com/h/pixeldroid/utils/SpaceItemDecoration.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/SpaceItemDecoration.kt
index 3f3dfe0e..dbef867f 100644
--- a/app/src/main/java/com/h/pixeldroid/utils/SpaceItemDecoration.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/SpaceItemDecoration.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.utils
+package com.h.pixeldroid.postCreation.photoEdit
import android.graphics.Rect
import android.view.View
diff --git a/app/src/main/java/com/h/pixeldroid/adapters/ThumbnailAdapter.kt b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/ThumbnailAdapter.kt
similarity index 91%
rename from app/src/main/java/com/h/pixeldroid/adapters/ThumbnailAdapter.kt
rename to app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/ThumbnailAdapter.kt
index 1e3dbd32..42d474b6 100644
--- a/app/src/main/java/com/h/pixeldroid/adapters/ThumbnailAdapter.kt
+++ b/app/src/main/java/com/h/pixeldroid/postCreation/photoEdit/ThumbnailAdapter.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.adapters
+package com.h.pixeldroid.postCreation.photoEdit
import android.content.Context
import android.view.LayoutInflater
@@ -9,13 +9,12 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.h.pixeldroid.R
-import com.h.pixeldroid.interfaces.FilterListFragmentListener
import com.zomato.photofilters.utils.ThumbnailItem
import kotlinx.android.synthetic.main.thumbnail_list_item.view.*
class ThumbnailAdapter (private val context: Context,
private val tbItemList: List,
- private val listener: FilterListFragmentListener): RecyclerView.Adapter() {
+ private val listener: FilterListFragment): RecyclerView.Adapter() {
private var selectedIndex = 0
diff --git a/app/src/main/java/com/h/pixeldroid/utils/customSpans/ClickableSpanNoUnderline.kt b/app/src/main/java/com/h/pixeldroid/posts/ClickableSpanNoUnderline.kt
similarity index 85%
rename from app/src/main/java/com/h/pixeldroid/utils/customSpans/ClickableSpanNoUnderline.kt
rename to app/src/main/java/com/h/pixeldroid/posts/ClickableSpanNoUnderline.kt
index 786d68ee..45d9261d 100644
--- a/app/src/main/java/com/h/pixeldroid/utils/customSpans/ClickableSpanNoUnderline.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/ClickableSpanNoUnderline.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.utils.customSpans
+package com.h.pixeldroid.posts
import android.text.TextPaint
import android.text.style.ClickableSpan
diff --git a/app/src/main/java/com/h/pixeldroid/posts/HtmlUtils.kt b/app/src/main/java/com/h/pixeldroid/posts/HtmlUtils.kt
new file mode 100644
index 00000000..312f6fc4
--- /dev/null
+++ b/app/src/main/java/com/h/pixeldroid/posts/HtmlUtils.kt
@@ -0,0 +1,141 @@
+package com.h.pixeldroid.posts
+
+import android.content.Context
+import android.os.Build
+import android.text.Html
+import android.text.SpannableStringBuilder
+import android.text.Spanned
+import android.text.style.ClickableSpan
+import android.text.style.URLSpan
+import android.util.Log
+import android.view.View
+import android.widget.TextView
+import android.widget.Toast
+import androidx.core.text.toSpanned
+import com.h.pixeldroid.R
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.utils.api.objects.Account.Companion.getAccountFromId
+import com.h.pixeldroid.utils.api.objects.Mention
+import java.net.URI
+import java.net.URISyntaxException
+import java.text.ParseException
+import java.util.*
+
+fun fromHtml(html: String): Spanned {
+ val result: Spanned = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY)
+ } else {
+ @Suppress("DEPRECATION")
+ Html.fromHtml(html)
+ }
+ return result.trim().toSpanned()
+}
+
+fun getDomain(urlString: String?): String {
+ val uri: URI
+ try {
+ uri = URI(urlString!!)
+ } catch (e: URISyntaxException) {
+ return ""
+ }
+ val host: String = uri.host
+ return if (host.startsWith("www.")) {
+ host.substring(4)
+ } else {
+ host
+ }
+}
+
+fun parseHTMLText(
+ text : String,
+ mentions: List?,
+ api : PixelfedAPI,
+ context: Context,
+ credential: String
+) : Spanned {
+ //Convert text to spannable
+ val content = fromHtml(text)
+
+ //Retrive all links that should be made clickable
+ val builder = SpannableStringBuilder(content)
+ val urlSpans = content.getSpans(0, content.length, URLSpan::class.java)
+
+ for(span in urlSpans) {
+ val start = builder.getSpanStart(span)
+ val end = builder.getSpanEnd(span)
+ val flags = builder.getSpanFlags(span)
+ val text = builder.subSequence(start, end)
+ var customSpan: ClickableSpan? = null
+
+ //Handle hashtags
+ if (text[0] == '#') {
+ val tag = text.subSequence(1, text.length).toString()
+ customSpan = object : ClickableSpanNoUnderline() {
+ override fun onClick(widget: View) {
+ Toast.makeText(context, tag, Toast.LENGTH_SHORT).show()
+ }
+
+ }
+ }
+
+ //Handle mentions
+ if(text[0] == '@' && !mentions.isNullOrEmpty()) {
+ val accountUsername = text.subSequence(1, text.length).toString()
+ var id: String? = null
+
+ //Go through all mentions stored in the status
+ for (mention in mentions) {
+ if (mention.username.equals(accountUsername, ignoreCase = true)
+ ) {
+ id = mention.id
+
+ //Mentions can be of users in other domains
+ if (mention.url.contains(getDomain(span.url))) {
+ break
+ }
+ }
+ }
+
+ //Check that we found a user for the given mention
+ if (id != null) {
+ val accountId: String = id
+ customSpan = object : ClickableSpanNoUnderline() {
+ override fun onClick(widget: View) {
+ Log.e("MENTION", "CLICKED")
+ //Retrieve the account for the given profile
+ getAccountFromId(accountId, api, context, credential)
+ }
+ }
+ }
+ }
+
+ builder.removeSpan(span)
+ builder.setSpan(customSpan, start, end, flags)
+
+ // Add zero-width space after links in end of line to fix its too large hitbox.
+ if (end >= builder.length || builder.subSequence(end, end + 1).toString() == "\n") {
+ builder.insert(end, "\u200B")
+ }
+ }
+
+ return builder
+}
+
+
+fun setTextViewFromISO8601(date: Date, textView: TextView, absoluteTime: Boolean, context: Context) {
+ val now = Date().time
+
+ try {
+ val then = date.time
+ val formattedDate = android.text.format.DateUtils
+ .getRelativeTimeSpanString(then, now,
+ android.text.format.DateUtils.SECOND_IN_MILLIS,
+ android.text.format.DateUtils.FORMAT_ABBREV_RELATIVE)
+
+ textView.text = if(absoluteTime) context.getString(R.string.posted_on).format(date)
+ else "$formattedDate"
+
+ } catch (e: ParseException) {
+ e.printStackTrace()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/PostActivity.kt b/app/src/main/java/com/h/pixeldroid/posts/PostActivity.kt
similarity index 66%
rename from app/src/main/java/com/h/pixeldroid/PostActivity.kt
rename to app/src/main/java/com/h/pixeldroid/posts/PostActivity.kt
index 88dae4eb..4fcd99be 100644
--- a/app/src/main/java/com/h/pixeldroid/PostActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/PostActivity.kt
@@ -1,18 +1,19 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.posts
import android.os.Bundle
import android.util.Log
import android.view.View
-import com.h.pixeldroid.fragments.PostFragment
-import com.h.pixeldroid.objects.DiscoverPost
-import com.h.pixeldroid.objects.Status
-import com.h.pixeldroid.objects.Status.Companion.DISCOVER_TAG
-import com.h.pixeldroid.objects.Status.Companion.DOMAIN_TAG
-import com.h.pixeldroid.objects.Status.Companion.POST_TAG
+import androidx.lifecycle.lifecycleScope
+import com.h.pixeldroid.R
+import com.h.pixeldroid.utils.api.objects.DiscoverPost
+import com.h.pixeldroid.utils.api.objects.Status
+import com.h.pixeldroid.utils.api.objects.Status.Companion.DISCOVER_TAG
+import com.h.pixeldroid.utils.api.objects.Status.Companion.DOMAIN_TAG
+import com.h.pixeldroid.utils.api.objects.Status.Companion.POST_TAG
+import com.h.pixeldroid.utils.BaseActivity
import kotlinx.android.synthetic.main.activity_post.*
-import retrofit2.Call
-import retrofit2.Callback
-import retrofit2.Response
+import retrofit2.HttpException
+import java.io.IOException
class PostActivity : BaseActivity() {
private lateinit var postFragment : PostFragment
@@ -55,26 +56,24 @@ class PostActivity : BaseActivity() {
) {
val api = apiHolder.api ?: apiHolder.setDomainToCurrentUser(db)
val id = discoverPost.url?.substringAfterLast('/') ?: ""
- api.getStatus("Bearer $accessToken", id).enqueue(object : Callback {
-
- override fun onFailure(call: Call, t: Throwable) {
- Log.e("PostActivity:", t.toString())
+ lifecycleScope.launchWhenCreated {
+ try {
+ val status = api.getStatus("Bearer $accessToken", id)
+ postProgressBar.visibility = View.GONE
+ initializeFragment(arguments, status)
+ } catch (exception: IOException) {
+ //TODO show error message
+ Log.e("PostActivity:", exception.toString())
+ } catch (exception: HttpException) {
}
-
- override fun onResponse(call: Call, response: Response) {
- if(response.code() == 200) {
- val status = response.body()!!
- postProgressBar.visibility = View.GONE
- initializeFragment(arguments, status)
- }
- }
- })
+ }
}
private fun initializeFragment(arguments: Bundle, status: Status?){
supportActionBar?.title = getString(R.string.post_title).format(status!!.account?.getDisplayName())
arguments.putSerializable(POST_TAG, status)
postFragment.arguments = arguments
+ supportFragmentManager.isStateSaved
supportFragmentManager.beginTransaction()
.add(R.id.postFragmentSingle, postFragment).commit()
postFragmentSingle.visibility = View.VISIBLE
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/PostFragment.kt b/app/src/main/java/com/h/pixeldroid/posts/PostFragment.kt
similarity index 79%
rename from app/src/main/java/com/h/pixeldroid/fragments/PostFragment.kt
rename to app/src/main/java/com/h/pixeldroid/posts/PostFragment.kt
index c3adfe9b..cfed84bd 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/PostFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/PostFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments
+package com.h.pixeldroid.posts
import android.os.Bundle
import android.view.LayoutInflater
@@ -6,9 +6,10 @@ import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.lifecycleScope
import com.h.pixeldroid.R
-import com.h.pixeldroid.objects.Status
-import com.h.pixeldroid.objects.Status.Companion.DOMAIN_TAG
-import com.h.pixeldroid.objects.Status.Companion.POST_TAG
+import com.h.pixeldroid.utils.api.objects.Status
+import com.h.pixeldroid.utils.api.objects.Status.Companion.DOMAIN_TAG
+import com.h.pixeldroid.utils.api.objects.Status.Companion.POST_TAG
+import com.h.pixeldroid.utils.BaseFragment
class PostFragment : BaseFragment() {
diff --git a/app/src/main/java/com/h/pixeldroid/ReportActivity.kt b/app/src/main/java/com/h/pixeldroid/posts/ReportActivity.kt
similarity index 92%
rename from app/src/main/java/com/h/pixeldroid/ReportActivity.kt
rename to app/src/main/java/com/h/pixeldroid/posts/ReportActivity.kt
index feebb205..e81f1e8e 100644
--- a/app/src/main/java/com/h/pixeldroid/ReportActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/ReportActivity.kt
@@ -1,10 +1,12 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.posts
import android.os.Bundle
import android.util.Log
import android.view.View
-import com.h.pixeldroid.objects.Report
-import com.h.pixeldroid.objects.Status
+import com.h.pixeldroid.R
+import com.h.pixeldroid.utils.api.objects.Report
+import com.h.pixeldroid.utils.api.objects.Status
+import com.h.pixeldroid.utils.BaseActivity
import kotlinx.android.synthetic.main.activity_report.*
import retrofit2.Call
import retrofit2.Callback
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/StatusViewHolder.kt b/app/src/main/java/com/h/pixeldroid/posts/StatusViewHolder.kt
similarity index 95%
rename from app/src/main/java/com/h/pixeldroid/fragments/StatusViewHolder.kt
rename to app/src/main/java/com/h/pixeldroid/posts/StatusViewHolder.kt
index 50803b3c..78999d01 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/StatusViewHolder.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/StatusViewHolder.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments
+package com.h.pixeldroid.posts
import android.Manifest
import android.app.AlertDialog
@@ -23,15 +23,12 @@ import com.bumptech.glide.RequestBuilder
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.tabs.TabLayoutMediator
import com.h.pixeldroid.R
-import com.h.pixeldroid.ReportActivity
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.objects.Attachment
-import com.h.pixeldroid.objects.Context
-import com.h.pixeldroid.objects.Status
-import com.h.pixeldroid.utils.HtmlUtils
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.api.objects.Attachment
+import com.h.pixeldroid.utils.api.objects.Context
+import com.h.pixeldroid.utils.api.objects.Status
import com.h.pixeldroid.utils.ImageConverter
-import com.h.pixeldroid.utils.Utils
import com.karumi.dexter.Dexter
import com.karumi.dexter.listener.PermissionDeniedResponse
import com.karumi.dexter.listener.PermissionGrantedResponse
@@ -98,7 +95,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
- fun setupPost(
+ private fun setupPost(
rootView: View,
request: RequestBuilder,
//homeFragment: Fragment,
@@ -128,7 +125,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
//Convert the date to a readable string
- Utils.setTextViewFromISO8601(
+ setTextViewFromISO8601(
status?.created_at!!,
rootView.postDate,
isActivity,
@@ -160,7 +157,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
rootView.findViewById(R.id.commentContainer).visibility = View.GONE
}
- fun setupPostPics(
+ private fun setupPostPics(
rootView: View,
request: RequestBuilder,
//homeFragment: Fragment
@@ -192,7 +189,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun setupTabsLayout(
+ private fun setupTabsLayout(
rootView: View,
request: RequestBuilder,
) {
@@ -209,18 +206,18 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}.attach()
}
- fun setDescription(rootView: View, api: PixelfedAPI, credential: String) {
+ private fun setDescription(rootView: View, api: PixelfedAPI, credential: String) {
rootView.findViewById(R.id.description).apply {
if (status?.content.isNullOrBlank()) {
visibility = View.GONE
} else {
- text = HtmlUtils.parseHTMLText(status?.content.orEmpty(), status?.mentions, api, rootView.context, credential)
+ text = parseHTMLText(status?.content.orEmpty(), status?.mentions, api, rootView.context, credential)
movementMethod = LinkMovementMethod.getInstance()
}
}
}
- fun activateButtons(holder: StatusViewHolder, api: PixelfedAPI, db: AppDatabase, lifecycleScope: LifecycleCoroutineScope){
+ private fun activateButtons(holder: StatusViewHolder, api: PixelfedAPI, db: AppDatabase, lifecycleScope: LifecycleCoroutineScope){
val user = db.userDao().getActiveUser()!!
val credential = "Bearer ${user.accessToken}"
@@ -246,7 +243,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
activateMoreButton(holder, api, db, lifecycleScope)
}
- fun activateReblogger(
+ private fun activateReblogger(
holder: StatusViewHolder,
api: PixelfedAPI,
credential: String,
@@ -271,7 +268,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun reblogPost(
+ private fun reblogPost(
holder : StatusViewHolder,
api: PixelfedAPI,
credential: String
@@ -301,7 +298,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun undoReblogPost(
+ private fun undoReblogPost(
holder : StatusViewHolder,
api: PixelfedAPI,
credential: String,
@@ -331,7 +328,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun activateMoreButton(holder: StatusViewHolder, api: PixelfedAPI, db: AppDatabase, lifecycleScope: LifecycleCoroutineScope){
+ private fun activateMoreButton(holder: StatusViewHolder, api: PixelfedAPI, db: AppDatabase, lifecycleScope: LifecycleCoroutineScope){
holder.more.setOnClickListener {
PopupMenu(it.context, it).apply {
setOnMenuItemClickListener { item ->
@@ -448,7 +445,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
- fun activateDoubleTapLiker(
+ private fun activateDoubleTapLiker(
holder: StatusViewHolder,
api: PixelfedAPI,
credential: String
@@ -481,7 +478,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun activateLiker(
+ private fun activateLiker(
holder: StatusViewHolder,
api: PixelfedAPI,
credential: String,
@@ -507,7 +504,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun likePostCall(
+ private fun likePostCall(
holder : StatusViewHolder,
api: PixelfedAPI,
credential: String,
@@ -537,7 +534,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun unLikePostCall(
+ private fun unLikePostCall(
holder : StatusViewHolder,
api: PixelfedAPI,
credential: String,
@@ -568,7 +565,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun showComments(
+ private fun showComments(
holder: StatusViewHolder,
api: PixelfedAPI,
credential: String
@@ -589,7 +586,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun activateCommenter(
+ private fun activateCommenter(
holder: StatusViewHolder,
api: PixelfedAPI,
credential: String
@@ -615,7 +612,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun toggleCommentInput(
+ private fun toggleCommentInput(
holder : StatusViewHolder
) {
//Toggle comment button
@@ -650,7 +647,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
view.commentText.text = commentContent
}
- fun retrieveComments(
+ private fun retrieveComments(
holder : StatusViewHolder,
api: PixelfedAPI,
credential: String,
@@ -686,7 +683,7 @@ class StatusViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
}
}
- fun postComment(
+ private fun postComment(
holder : StatusViewHolder,
api: PixelfedAPI,
credential: String,
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/CommonFeedFragmentUtils.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/CommonFeedFragmentUtils.kt
similarity index 95%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/CommonFeedFragmentUtils.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/CommonFeedFragmentUtils.kt
index 0494fa8b..30263739 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/CommonFeedFragmentUtils.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/CommonFeedFragmentUtils.kt
@@ -1,11 +1,7 @@
-package com.h.pixeldroid.fragments.feeds
+package com.h.pixeldroid.posts.feeds
import android.view.LayoutInflater
-import android.view.View
import android.view.ViewGroup
-import android.widget.ProgressBar
-import androidx.annotation.StringRes
-import androidx.constraintlayout.motion.widget.MotionLayout
import androidx.core.view.isVisible
import androidx.core.view.size
import androidx.paging.LoadState
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/CachedFeedFragment.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/CachedFeedFragment.kt
similarity index 92%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/CachedFeedFragment.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/CachedFeedFragment.kt
index 135b3fb5..ab2ec9e8 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/CachedFeedFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/CachedFeedFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments.feeds.cachedFeeds
+package com.h.pixeldroid.posts.feeds.cachedFeeds
import android.os.Bundle
import android.view.LayoutInflater
@@ -17,11 +17,11 @@ import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.launch
import com.h.pixeldroid.databinding.FragmentFeedBinding
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.dao.feedContent.FeedContentDao
-import com.h.pixeldroid.fragments.BaseFragment
-import com.h.pixeldroid.fragments.feeds.initAdapter
-import com.h.pixeldroid.objects.FeedContentDatabase
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.db.dao.feedContent.FeedContentDao
+import com.h.pixeldroid.utils.BaseFragment
+import com.h.pixeldroid.posts.feeds.initAdapter
+import com.h.pixeldroid.utils.api.objects.FeedContentDatabase
/**
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/FeedContentRepository.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/FeedContentRepository.kt
similarity index 89%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/FeedContentRepository.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/FeedContentRepository.kt
index 6ed1c724..9c887d48 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/FeedContentRepository.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/FeedContentRepository.kt
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.h.pixeldroid.fragments.feeds.cachedFeeds
+package com.h.pixeldroid.posts.feeds.cachedFeeds
import androidx.paging.*
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.dao.feedContent.FeedContentDao
-import com.h.pixeldroid.objects.FeedContentDatabase
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.db.dao.feedContent.FeedContentDao
+import com.h.pixeldroid.utils.api.objects.FeedContentDatabase
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/FeedViewModel.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/FeedViewModel.kt
similarity index 92%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/FeedViewModel.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/FeedViewModel.kt
index 8e3c5c4f..ac436408 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/FeedViewModel.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/FeedViewModel.kt
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.h.pixeldroid.fragments.feeds.cachedFeeds
+package com.h.pixeldroid.posts.feeds.cachedFeeds
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import androidx.paging.*
-import com.h.pixeldroid.objects.FeedContentDatabase
+import com.h.pixeldroid.utils.api.objects.FeedContentDatabase
import kotlinx.coroutines.flow.Flow
/**
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/notifications/NotificationsFragment.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/notifications/NotificationsFragment.kt
similarity index 74%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/notifications/NotificationsFragment.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/notifications/NotificationsFragment.kt
index 7dd464dc..ee02bf44 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/notifications/NotificationsFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/notifications/NotificationsFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments.feeds.cachedFeeds.notifications
+package com.h.pixeldroid.posts.feeds.cachedFeeds.notifications
import android.content.Context
import android.content.Intent
@@ -16,22 +16,22 @@ import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
-import com.h.pixeldroid.PostActivity
-import com.h.pixeldroid.ProfileActivity
+import com.h.pixeldroid.posts.PostActivity
+import com.h.pixeldroid.profile.ProfileActivity
import com.h.pixeldroid.R
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.di.PixelfedAPIHolder
-import com.h.pixeldroid.objects.Account
-import com.h.pixeldroid.objects.Notification
-import com.h.pixeldroid.objects.Status
-import com.h.pixeldroid.utils.Utils.Companion.setTextViewFromISO8601
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.di.PixelfedAPIHolder
+import com.h.pixeldroid.utils.api.objects.Account
+import com.h.pixeldroid.utils.api.objects.Notification
+import com.h.pixeldroid.utils.api.objects.Status
import kotlinx.android.synthetic.main.fragment_notifications.view.*
-import com.h.pixeldroid.fragments.feeds.cachedFeeds.CachedFeedFragment
-import com.h.pixeldroid.fragments.feeds.cachedFeeds.FeedViewModel
-import com.h.pixeldroid.fragments.feeds.cachedFeeds.ViewModelFactory
-import com.h.pixeldroid.utils.HtmlUtils.Companion.parseHTMLText
+import com.h.pixeldroid.posts.feeds.cachedFeeds.CachedFeedFragment
+import com.h.pixeldroid.posts.feeds.cachedFeeds.FeedViewModel
+import com.h.pixeldroid.posts.feeds.cachedFeeds.ViewModelFactory
+import com.h.pixeldroid.posts.parseHTMLText
+import com.h.pixeldroid.posts.setTextViewFromISO8601
/**
@@ -83,48 +83,50 @@ class NotificationViewHolder(view: View) : RecyclerView.ViewHolder(view) {
}
private fun Notification.openActivity() {
- val intent: Intent
+ val intent: Intent =
when (type){
Notification.NotificationType.mention, Notification.NotificationType.favourite,
Notification.NotificationType.poll, Notification.NotificationType.reblog -> {
- intent = openPostFromNotification()
+ openPostFromNotification()
}
Notification.NotificationType.follow -> {
- intent = Intent(itemView.context, ProfileActivity::class.java)
- intent.putExtra(Account.ACCOUNT_TAG, account)
+ Intent(itemView.context, ProfileActivity::class.java).apply {
+ putExtra(Account.ACCOUNT_TAG, account)
+ }
}
+ null -> return //TODO show an error here?
}
itemView.context.startActivity(intent)
}
- private fun Notification.openPostFromNotification(): Intent {
- val intent = Intent(itemView.context, PostActivity::class.java)
- intent.putExtra(Status.POST_TAG, status)
- return intent
- }
+ private fun Notification.openPostFromNotification(): Intent =
+ Intent(itemView.context, PostActivity::class.java).apply {
+ putExtra(Status.POST_TAG, status)
+ }
- private fun setNotificationType(type: Notification.NotificationType, username: String,
+ private fun setNotificationType(type: Notification.NotificationType,
+ username: String,
textView: TextView
){
val context = textView.context
val (format: String, drawable: Drawable?) = when(type) {
Notification.NotificationType.follow -> {
- setNotificationTypeTextView(context, R.string.followed_notification, R.drawable.ic_follow)
+ getStringAndDrawable(context, R.string.followed_notification, R.drawable.ic_follow)
}
Notification.NotificationType.mention -> {
- setNotificationTypeTextView(context, R.string.mention_notification, R.drawable.ic_apenstaart)
+ getStringAndDrawable(context, R.string.mention_notification, R.drawable.ic_apenstaart)
}
Notification.NotificationType.reblog -> {
- setNotificationTypeTextView(context, R.string.shared_notification, R.drawable.ic_reblog_blue)
+ getStringAndDrawable(context, R.string.shared_notification, R.drawable.ic_reblog_blue)
}
Notification.NotificationType.favourite -> {
- setNotificationTypeTextView(context, R.string.liked_notification, R.drawable.ic_like_full)
+ getStringAndDrawable(context, R.string.liked_notification, R.drawable.ic_like_full)
}
Notification.NotificationType.poll -> {
- setNotificationTypeTextView(context, R.string.poll_notification, R.drawable.poll)
+ getStringAndDrawable(context, R.string.poll_notification, R.drawable.poll)
}
}
textView.text = format.format(username)
@@ -132,9 +134,9 @@ class NotificationViewHolder(view: View) : RecyclerView.ViewHolder(view) {
drawable,null,null,null
)
}
- private fun setNotificationTypeTextView(context: Context, format: Int, drawable: Int): Pair {
- return Pair(context.getString(format), ContextCompat.getDrawable(context, drawable))
- }
+
+ private fun getStringAndDrawable(context: Context, stringToFormat: Int, drawable: Int): Pair
+ = Pair(context.getString(stringToFormat), ContextCompat.getDrawable(context, drawable))
@@ -152,7 +154,7 @@ class NotificationViewHolder(view: View) : RecyclerView.ViewHolder(view) {
photoThumbnail.visibility = View.GONE
}
- notification?.type?.let { setNotificationType(it, notification.account.username!!, notificationType) }
+ notification?.type?.let { notification.account?.username?.let { username -> setNotificationType(it, username, notificationType) } }
notification?.created_at?.let { setTextViewFromISO8601(it, notificationTime, false, itemView.context) }
//Convert HTML to clickable text
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt
similarity index 92%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt
index 324f222a..a518742d 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.h.pixeldroid.fragments.feeds.cachedFeeds.notifications
+package com.h.pixeldroid.posts.feeds.cachedFeeds.notifications
import androidx.paging.*
import androidx.room.withTransaction
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.di.PixelfedAPIHolder
-import com.h.pixeldroid.objects.Notification
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.di.PixelfedAPIHolder
+import com.h.pixeldroid.utils.api.objects.Notification
import retrofit2.HttpException
import java.io.IOException
import javax.inject.Inject
@@ -57,7 +57,7 @@ class NotificationsRemoteMediator @Inject constructor(
try {
val user = db.userDao().getActiveUser()!!
val api = apiHolder.api ?: apiHolder.setDomainToCurrentUser(db)
- val accessToken = user.accessToken.orEmpty()
+ val accessToken = user.accessToken
val apiResponse = api.notifications("Bearer $accessToken",
max_id = max_id,
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt
similarity index 89%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt
index 6bdfbee6..cde22c9d 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt
@@ -1,10 +1,10 @@
-package com.h.pixeldroid.fragments.feeds.cachedFeeds.postFeeds
+package com.h.pixeldroid.posts.feeds.cachedFeeds.postFeeds
import androidx.paging.*
import androidx.room.withTransaction
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.di.PixelfedAPIHolder
-import com.h.pixeldroid.db.entities.HomeStatusDatabaseEntity
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.di.PixelfedAPIHolder
+import com.h.pixeldroid.utils.db.entities.HomeStatusDatabaseEntity
import retrofit2.HttpException
import java.io.IOException
import javax.inject.Inject
@@ -42,7 +42,7 @@ class HomeFeedRemoteMediator @Inject constructor(
try {
val user = db.userDao().getActiveUser()!!
val api = apiHolder.api ?: apiHolder.setDomainToCurrentUser(db)
- val accessToken = user.accessToken.orEmpty()
+ val accessToken = user.accessToken
val apiResponse = api.timelineHome( "Bearer $accessToken",
max_id= max_id, min_id = min_id,
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/postFeeds/PostFeedFragment.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/postFeeds/PostFeedFragment.kt
similarity index 85%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/postFeeds/PostFeedFragment.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/postFeeds/PostFeedFragment.kt
index 9cc4176d..f2a66b3c 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/postFeeds/PostFeedFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/postFeeds/PostFeedFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments.feeds.cachedFeeds.postFeeds
+package com.h.pixeldroid.posts.feeds.cachedFeeds.postFeeds
import android.os.Bundle
import android.view.LayoutInflater
@@ -12,13 +12,13 @@ import androidx.paging.RemoteMediator
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.h.pixeldroid.R
-import com.h.pixeldroid.db.dao.feedContent.FeedContentDao
-import com.h.pixeldroid.fragments.StatusViewHolder
-import com.h.pixeldroid.fragments.feeds.cachedFeeds.FeedViewModel
-import com.h.pixeldroid.fragments.feeds.cachedFeeds.CachedFeedFragment
-import com.h.pixeldroid.fragments.feeds.cachedFeeds.ViewModelFactory
-import com.h.pixeldroid.objects.FeedContentDatabase
-import com.h.pixeldroid.objects.Status
+import com.h.pixeldroid.utils.db.dao.feedContent.FeedContentDao
+import com.h.pixeldroid.posts.StatusViewHolder
+import com.h.pixeldroid.posts.feeds.cachedFeeds.FeedViewModel
+import com.h.pixeldroid.posts.feeds.cachedFeeds.CachedFeedFragment
+import com.h.pixeldroid.posts.feeds.cachedFeeds.ViewModelFactory
+import com.h.pixeldroid.utils.api.objects.FeedContentDatabase
+import com.h.pixeldroid.utils.api.objects.Status
/**
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt
similarity index 93%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt
index 0d65a5eb..f668105e 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.h.pixeldroid.fragments.feeds.cachedFeeds.postFeeds
+package com.h.pixeldroid.posts.feeds.cachedFeeds.postFeeds
import androidx.paging.*
import androidx.room.withTransaction
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.entities.PublicFeedStatusDatabaseEntity
-import com.h.pixeldroid.di.PixelfedAPIHolder
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.db.entities.PublicFeedStatusDatabaseEntity
+import com.h.pixeldroid.utils.di.PixelfedAPIHolder
import retrofit2.HttpException
import java.io.IOException
import javax.inject.Inject
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/FeedViewModel.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/FeedViewModel.kt
similarity index 89%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/FeedViewModel.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/FeedViewModel.kt
index 8f8be2af..4111b7e9 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/FeedViewModel.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/FeedViewModel.kt
@@ -1,9 +1,9 @@
-package com.h.pixeldroid.fragments.feeds.uncachedFeeds
+package com.h.pixeldroid.posts.feeds.uncachedFeeds
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import androidx.paging.*
-import com.h.pixeldroid.objects.FeedContent
+import com.h.pixeldroid.utils.api.objects.FeedContent
import kotlinx.coroutines.flow.Flow
/**
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/UncachedFeedFragment.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/UncachedFeedFragment.kt
similarity index 93%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/UncachedFeedFragment.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/UncachedFeedFragment.kt
index 027fe514..f49343d0 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/UncachedFeedFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/UncachedFeedFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments.feeds.uncachedFeeds
+package com.h.pixeldroid.posts.feeds.uncachedFeeds
import android.os.Bundle
import android.view.LayoutInflater
@@ -17,9 +17,9 @@ import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.launch
import com.h.pixeldroid.databinding.FragmentFeedBinding
-import com.h.pixeldroid.fragments.BaseFragment
-import com.h.pixeldroid.fragments.feeds.initAdapter
-import com.h.pixeldroid.objects.FeedContent
+import com.h.pixeldroid.utils.BaseFragment
+import com.h.pixeldroid.posts.feeds.initAdapter
+import com.h.pixeldroid.utils.api.objects.FeedContent
/**
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/accountLists/AccountListFragment.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/accountLists/AccountListFragment.kt
similarity index 89%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/accountLists/AccountListFragment.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/accountLists/AccountListFragment.kt
index cea125c6..1eef92bd 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/accountLists/AccountListFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/accountLists/AccountListFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments.feeds.uncachedFeeds.accountLists
+package com.h.pixeldroid.posts.feeds.uncachedFeeds.accountLists
import android.annotation.SuppressLint
import android.os.Bundle
@@ -14,12 +14,12 @@ import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.h.pixeldroid.R
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.FeedViewModel
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.UncachedFeedFragment
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.ViewModelFactory
-import com.h.pixeldroid.objects.Account
-import com.h.pixeldroid.objects.Account.Companion.ACCOUNT_ID_TAG
-import com.h.pixeldroid.objects.Account.Companion.FOLLOWERS_TAG
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.FeedViewModel
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.UncachedFeedFragment
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.ViewModelFactory
+import com.h.pixeldroid.utils.api.objects.Account
+import com.h.pixeldroid.utils.api.objects.Account.Companion.ACCOUNT_ID_TAG
+import com.h.pixeldroid.utils.api.objects.Account.Companion.FOLLOWERS_TAG
import kotlinx.android.synthetic.main.account_list_entry.view.*
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/accountLists/FollowersContentRepository.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/accountLists/FollowersContentRepository.kt
similarity index 80%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/accountLists/FollowersContentRepository.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/accountLists/FollowersContentRepository.kt
index 333259d4..72b6dd09 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/accountLists/FollowersContentRepository.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/accountLists/FollowersContentRepository.kt
@@ -1,12 +1,12 @@
-package com.h.pixeldroid.fragments.feeds.uncachedFeeds.accountLists
+package com.h.pixeldroid.posts.feeds.uncachedFeeds.accountLists
import androidx.paging.ExperimentalPagingApi
import androidx.paging.Pager
import androidx.paging.PagingConfig
import androidx.paging.PagingData
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.UncachedContentRepository
-import com.h.pixeldroid.objects.Account
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.UncachedContentRepository
+import com.h.pixeldroid.utils.api.objects.Account
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/accountLists/FollowersPagingSource.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/accountLists/FollowersPagingSource.kt
similarity index 94%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/accountLists/FollowersPagingSource.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/accountLists/FollowersPagingSource.kt
index aa93920b..204b3ae3 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/accountLists/FollowersPagingSource.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/accountLists/FollowersPagingSource.kt
@@ -1,8 +1,8 @@
-package com.h.pixeldroid.fragments.feeds.uncachedFeeds.accountLists
+package com.h.pixeldroid.posts.feeds.uncachedFeeds.accountLists
import androidx.paging.PagingSource
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.objects.Account
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.utils.api.objects.Account
import retrofit2.HttpException
import java.io.IOException
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchAccountFragment.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchAccountFragment.kt
similarity index 82%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchAccountFragment.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchAccountFragment.kt
index dfe5de6b..c11fc275 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchAccountFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchAccountFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments.feeds.uncachedFeeds.search
+package com.h.pixeldroid.posts.feeds.uncachedFeeds.search
import android.os.Bundle
import android.view.LayoutInflater
@@ -6,10 +6,10 @@ import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import androidx.paging.ExperimentalPagingApi
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.*
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.accountLists.AccountAdapter
-import com.h.pixeldroid.objects.Account
-import com.h.pixeldroid.objects.Results
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.*
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.accountLists.AccountAdapter
+import com.h.pixeldroid.utils.api.objects.Account
+import com.h.pixeldroid.utils.api.objects.Results
/**
* Fragment to show a list of [Account]s, as a result of a search.
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchContentRepository.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchContentRepository.kt
similarity index 75%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchContentRepository.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchContentRepository.kt
index 4eec7ef7..e307cfb4 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchContentRepository.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchContentRepository.kt
@@ -1,13 +1,13 @@
-package com.h.pixeldroid.fragments.feeds.uncachedFeeds.search
+package com.h.pixeldroid.posts.feeds.uncachedFeeds.search
import androidx.paging.ExperimentalPagingApi
import androidx.paging.Pager
import androidx.paging.PagingConfig
import androidx.paging.PagingData
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.UncachedContentRepository
-import com.h.pixeldroid.objects.FeedContent
-import com.h.pixeldroid.objects.Results
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.UncachedContentRepository
+import com.h.pixeldroid.utils.api.objects.FeedContent
+import com.h.pixeldroid.utils.api.objects.Results
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
@@ -15,7 +15,7 @@ import javax.inject.Inject
* Repository class to perform searches
*
* The type argument [T] and the [Results.SearchType][type] argument should always
- * be in agreement, e.g. if [T] is a [com.h.pixeldroid.objects.Account] then
+ * be in agreement, e.g. if [T] is a [com.h.pixeldroid.utils.api.objects.Account] then
* [type] should be [Results.SearchType.accounts].
*/
class SearchContentRepository @ExperimentalPagingApi
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchHashtagFragment.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchHashtagFragment.kt
similarity index 89%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchHashtagFragment.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchHashtagFragment.kt
index b5a80463..203bd740 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchHashtagFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchHashtagFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments.feeds.uncachedFeeds.search
+package com.h.pixeldroid.posts.feeds.uncachedFeeds.search
import android.annotation.SuppressLint
import android.os.Bundle
@@ -12,12 +12,11 @@ import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.h.pixeldroid.R
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.UncachedFeedFragment
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.FeedViewModel
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.ViewModelFactory
-import com.h.pixeldroid.objects.Account
-import com.h.pixeldroid.objects.Results
-import com.h.pixeldroid.objects.Tag
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.UncachedFeedFragment
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.FeedViewModel
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.ViewModelFactory
+import com.h.pixeldroid.utils.api.objects.Results
+import com.h.pixeldroid.utils.api.objects.Tag
import kotlinx.android.synthetic.main.fragment_tags.view.*
/**
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchPagingSource.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt
similarity index 87%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchPagingSource.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt
index 84d29369..1d62aba3 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchPagingSource.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt
@@ -1,9 +1,9 @@
-package com.h.pixeldroid.fragments.feeds.uncachedFeeds.search
+package com.h.pixeldroid.posts.feeds.uncachedFeeds.search
import androidx.paging.PagingSource
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.objects.FeedContent
-import com.h.pixeldroid.objects.Results
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.utils.api.objects.FeedContent
+import com.h.pixeldroid.utils.api.objects.Results
import retrofit2.HttpException
import java.io.IOException
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchPostsFragment.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchPostsFragment.kt
similarity index 91%
rename from app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchPostsFragment.kt
rename to app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchPostsFragment.kt
index a7fbf6aa..ddb10d4a 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/feeds/uncachedFeeds/search/SearchPostsFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchPostsFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments.feeds.uncachedFeeds.search
+package com.h.pixeldroid.posts.feeds.uncachedFeeds.search
import android.os.Bundle
import android.view.LayoutInflater
@@ -11,10 +11,10 @@ import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.h.pixeldroid.R
-import com.h.pixeldroid.fragments.StatusViewHolder
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.*
-import com.h.pixeldroid.objects.Results
-import com.h.pixeldroid.objects.Status
+import com.h.pixeldroid.posts.StatusViewHolder
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.*
+import com.h.pixeldroid.utils.api.objects.Results
+import com.h.pixeldroid.utils.api.objects.Status
/**
* Fragment to show a list of [Status]es, as a result of a search.
diff --git a/app/src/main/java/com/h/pixeldroid/FollowsActivity.kt b/app/src/main/java/com/h/pixeldroid/profile/FollowsActivity.kt
similarity index 77%
rename from app/src/main/java/com/h/pixeldroid/FollowsActivity.kt
rename to app/src/main/java/com/h/pixeldroid/profile/FollowsActivity.kt
index 6d2e0f1b..52f0017a 100644
--- a/app/src/main/java/com/h/pixeldroid/FollowsActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/profile/FollowsActivity.kt
@@ -1,11 +1,13 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.profile
import android.os.Bundle
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.accountLists.AccountListFragment
-import com.h.pixeldroid.objects.Account
-import com.h.pixeldroid.objects.Account.Companion.ACCOUNT_ID_TAG
-import com.h.pixeldroid.objects.Account.Companion.ACCOUNT_TAG
-import com.h.pixeldroid.objects.Account.Companion.FOLLOWERS_TAG
+import com.h.pixeldroid.R
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.accountLists.AccountListFragment
+import com.h.pixeldroid.utils.api.objects.Account
+import com.h.pixeldroid.utils.api.objects.Account.Companion.ACCOUNT_ID_TAG
+import com.h.pixeldroid.utils.api.objects.Account.Companion.ACCOUNT_TAG
+import com.h.pixeldroid.utils.api.objects.Account.Companion.FOLLOWERS_TAG
+import com.h.pixeldroid.utils.BaseActivity
class FollowsActivity : BaseActivity() {
diff --git a/app/src/main/java/com/h/pixeldroid/ProfileActivity.kt b/app/src/main/java/com/h/pixeldroid/profile/ProfileActivity.kt
similarity index 97%
rename from app/src/main/java/com/h/pixeldroid/ProfileActivity.kt
rename to app/src/main/java/com/h/pixeldroid/profile/ProfileActivity.kt
index 28926a5d..9fab46c5 100644
--- a/app/src/main/java/com/h/pixeldroid/ProfileActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/profile/ProfileActivity.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.profile
import android.content.Intent
import android.graphics.Typeface
@@ -13,13 +13,15 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+import com.h.pixeldroid.R
import com.h.pixeldroid.adapters.ProfilePostsRecyclerViewAdapter
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
-import com.h.pixeldroid.objects.Account
-import com.h.pixeldroid.objects.Relationship
-import com.h.pixeldroid.objects.Status
-import com.h.pixeldroid.utils.HtmlUtils.Companion.parseHTMLText
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.api.objects.Account
+import com.h.pixeldroid.utils.api.objects.Relationship
+import com.h.pixeldroid.utils.api.objects.Status
+import com.h.pixeldroid.posts.parseHTMLText
+import com.h.pixeldroid.utils.BaseActivity
import com.h.pixeldroid.utils.ImageConverter
import retrofit2.Call
import retrofit2.Callback
diff --git a/app/src/main/java/com/h/pixeldroid/adapters/ProfilePostsRecyclerViewAdapter.kt b/app/src/main/java/com/h/pixeldroid/profile/ProfilePostsRecyclerViewAdapter.kt
similarity index 96%
rename from app/src/main/java/com/h/pixeldroid/adapters/ProfilePostsRecyclerViewAdapter.kt
rename to app/src/main/java/com/h/pixeldroid/profile/ProfilePostsRecyclerViewAdapter.kt
index 80b8cd8a..5d757013 100644
--- a/app/src/main/java/com/h/pixeldroid/adapters/ProfilePostsRecyclerViewAdapter.kt
+++ b/app/src/main/java/com/h/pixeldroid/profile/ProfilePostsRecyclerViewAdapter.kt
@@ -7,9 +7,9 @@ import android.view.ViewGroup
import android.widget.ImageView
import androidx.appcompat.content.res.AppCompatResources.getDrawable
import androidx.recyclerview.widget.RecyclerView
-import com.h.pixeldroid.PostActivity
+import com.h.pixeldroid.posts.PostActivity
import com.h.pixeldroid.R
-import com.h.pixeldroid.objects.Status
+import com.h.pixeldroid.utils.api.objects.Status
import com.h.pixeldroid.utils.ImageConverter.Companion.setSquareImageFromDrawable
import com.h.pixeldroid.utils.ImageConverter.Companion.setSquareImageFromURL
diff --git a/app/src/main/java/com/h/pixeldroid/SearchActivity.kt b/app/src/main/java/com/h/pixeldroid/searchDiscover/SearchActivity.kt
similarity index 88%
rename from app/src/main/java/com/h/pixeldroid/SearchActivity.kt
rename to app/src/main/java/com/h/pixeldroid/searchDiscover/SearchActivity.kt
index cbf3277d..f55c8d6b 100644
--- a/app/src/main/java/com/h/pixeldroid/SearchActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/searchDiscover/SearchActivity.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.searchDiscover
import android.app.SearchManager
import android.content.Intent
@@ -8,10 +8,12 @@ import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.search.SearchAccountFragment
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.search.SearchHashtagFragment
-import com.h.pixeldroid.fragments.feeds.uncachedFeeds.search.SearchPostsFragment
-import com.h.pixeldroid.objects.Results
+import com.h.pixeldroid.R
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.search.SearchAccountFragment
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.search.SearchHashtagFragment
+import com.h.pixeldroid.posts.feeds.uncachedFeeds.search.SearchPostsFragment
+import com.h.pixeldroid.utils.api.objects.Results
+import com.h.pixeldroid.utils.BaseActivity
class SearchActivity : BaseActivity() {
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/SearchDiscoverFragment.kt b/app/src/main/java/com/h/pixeldroid/searchDiscover/SearchDiscoverFragment.kt
similarity index 92%
rename from app/src/main/java/com/h/pixeldroid/fragments/SearchDiscoverFragment.kt
rename to app/src/main/java/com/h/pixeldroid/searchDiscover/SearchDiscoverFragment.kt
index 2193937a..44c24062 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/SearchDiscoverFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/searchDiscover/SearchDiscoverFragment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.fragments
+package com.h.pixeldroid.searchDiscover
import android.app.SearchManager
import android.content.Context
@@ -12,20 +12,17 @@ import android.widget.*
import androidx.annotation.StringRes
import androidx.appcompat.widget.SearchView
import androidx.constraintlayout.motion.widget.MotionLayout
-import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
-import com.h.pixeldroid.Pixeldroid
-import com.h.pixeldroid.PostActivity
import com.h.pixeldroid.R
import com.h.pixeldroid.adapters.ProfilePostViewHolder
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.di.PixelfedAPIHolder
-import com.h.pixeldroid.objects.DiscoverPost
-import com.h.pixeldroid.objects.DiscoverPosts
-import com.h.pixeldroid.objects.Status
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.utils.api.objects.DiscoverPost
+import com.h.pixeldroid.utils.api.objects.DiscoverPosts
+import com.h.pixeldroid.utils.api.objects.Status
+import com.h.pixeldroid.posts.PostActivity
+import com.h.pixeldroid.utils.BaseFragment
import com.h.pixeldroid.utils.ImageConverter
import com.mikepenz.iconics.IconicsColor
import com.mikepenz.iconics.IconicsDrawable
@@ -33,11 +30,9 @@ import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
import com.mikepenz.iconics.utils.color
import com.mikepenz.iconics.utils.paddingDp
import com.mikepenz.iconics.utils.sizeDp
-import kotlinx.android.synthetic.main.fragment_search.*
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
-import javax.inject.Inject
/**
* This fragment lets you search and use Pixelfed's Discover feature
diff --git a/app/src/main/java/com/h/pixeldroid/AboutActivity.kt b/app/src/main/java/com/h/pixeldroid/settings/AboutActivity.kt
similarity index 82%
rename from app/src/main/java/com/h/pixeldroid/AboutActivity.kt
rename to app/src/main/java/com/h/pixeldroid/settings/AboutActivity.kt
index 3ad0cd1e..43c5446b 100644
--- a/app/src/main/java/com/h/pixeldroid/AboutActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/settings/AboutActivity.kt
@@ -1,7 +1,10 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.settings
import android.content.Intent
import android.os.Bundle
+import com.h.pixeldroid.BuildConfig
+import com.h.pixeldroid.R
+import com.h.pixeldroid.utils.BaseActivity
import kotlinx.android.synthetic.main.activity_about.*
class AboutActivity : BaseActivity() {
diff --git a/app/src/main/java/com/h/pixeldroid/LicenseActivity.kt b/app/src/main/java/com/h/pixeldroid/settings/LicenseActivity.kt
similarity index 81%
rename from app/src/main/java/com/h/pixeldroid/LicenseActivity.kt
rename to app/src/main/java/com/h/pixeldroid/settings/LicenseActivity.kt
index 58c9d967..9bf6c639 100644
--- a/app/src/main/java/com/h/pixeldroid/LicenseActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/settings/LicenseActivity.kt
@@ -1,6 +1,8 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.settings
import android.os.Bundle
+import com.h.pixeldroid.R
+import com.h.pixeldroid.utils.BaseActivity
import kotlinx.android.synthetic.main.activity_licenses.*
diff --git a/app/src/main/java/com/h/pixeldroid/SettingsActivity.kt b/app/src/main/java/com/h/pixeldroid/settings/SettingsActivity.kt
similarity index 93%
rename from app/src/main/java/com/h/pixeldroid/SettingsActivity.kt
rename to app/src/main/java/com/h/pixeldroid/settings/SettingsActivity.kt
index 9f3a226c..feeed674 100644
--- a/app/src/main/java/com/h/pixeldroid/SettingsActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/settings/SettingsActivity.kt
@@ -1,11 +1,14 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.settings
import android.content.Intent
import android.content.SharedPreferences
import android.os.Bundle
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
-import com.h.pixeldroid.utils.ThemeUtils.Companion.setThemeFromPreferences
+import com.h.pixeldroid.MainActivity
+import com.h.pixeldroid.R
+import com.h.pixeldroid.utils.BaseActivity
+import com.h.pixeldroid.utils.setThemeFromPreferences
class SettingsActivity : BaseActivity(), SharedPreferences.OnSharedPreferenceChangeListener {
private var restartMainOnExit = false
diff --git a/app/src/main/java/com/h/pixeldroid/BaseActivity.kt b/app/src/main/java/com/h/pixeldroid/utils/BaseActivity.kt
similarity index 89%
rename from app/src/main/java/com/h/pixeldroid/BaseActivity.kt
rename to app/src/main/java/com/h/pixeldroid/utils/BaseActivity.kt
index c02fc558..61f4b358 100644
--- a/app/src/main/java/com/h/pixeldroid/BaseActivity.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/BaseActivity.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.utils
import android.content.Context
import android.content.res.Configuration
@@ -7,8 +7,8 @@ import android.os.Build
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.PreferenceManager
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.di.PixelfedAPIHolder
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.di.PixelfedAPIHolder
import java.util.*
import javax.inject.Inject
@@ -21,7 +21,7 @@ open class BaseActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- (this.application as Pixeldroid).getAppComponent().inject(this)
+ (this.application as PixelDroidApplication).getAppComponent().inject(this)
}
override fun attachBaseContext(base: Context) {
diff --git a/app/src/main/java/com/h/pixeldroid/fragments/BaseFragment.kt b/app/src/main/java/com/h/pixeldroid/utils/BaseFragment.kt
similarity index 65%
rename from app/src/main/java/com/h/pixeldroid/fragments/BaseFragment.kt
rename to app/src/main/java/com/h/pixeldroid/utils/BaseFragment.kt
index fc9f6369..bb42777f 100644
--- a/app/src/main/java/com/h/pixeldroid/fragments/BaseFragment.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/BaseFragment.kt
@@ -1,10 +1,9 @@
-package com.h.pixeldroid.fragments
+package com.h.pixeldroid.utils
import android.os.Bundle
import androidx.fragment.app.Fragment
-import com.h.pixeldroid.Pixeldroid
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.di.PixelfedAPIHolder
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.di.PixelfedAPIHolder
import javax.inject.Inject
/**
@@ -20,7 +19,7 @@ open class BaseFragment: Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- (requireActivity().application as Pixeldroid).getAppComponent().inject(this)
+ (requireActivity().application as PixelDroidApplication).getAppComponent().inject(this)
}
}
diff --git a/app/src/main/java/com/h/pixeldroid/utils/DBUtils.kt b/app/src/main/java/com/h/pixeldroid/utils/DBUtils.kt
deleted file mode 100644
index 83e62c07..00000000
--- a/app/src/main/java/com/h/pixeldroid/utils/DBUtils.kt
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.h.pixeldroid.utils
-
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.entities.InstanceDatabaseEntity
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
-import com.h.pixeldroid.objects.Account
-import com.h.pixeldroid.objects.Instance
-import com.h.pixeldroid.utils.Utils.Companion.normalizeDomain
-
-class DBUtils {
- companion object {
- private const val MAX_NUMBER_OF_STORED_POSTS = 200
-
- private fun normalizeOrNot(uri: String): String{
- return if(uri.startsWith("http://localhost")){
- uri
- } else {
- normalizeDomain(uri)
- }
- }
-
- fun addUser(db: AppDatabase, account: Account, instance_uri: String, activeUser: Boolean = true,
- accessToken: String, refreshToken: String?, clientId: String, clientSecret: String) {
- db.userDao().insertUser(
- UserDatabaseEntity(
- user_id = account.id!!,
- //make sure not to normalize to https when localhost, to allow testing
- instance_uri = normalizeOrNot(instance_uri),
- username = account.username!!,
- display_name = account.getDisplayName(),
- avatar_static = account.avatar_static.orEmpty(),
- isActive = activeUser,
- accessToken = accessToken,
- refreshToken = refreshToken,
- clientId = clientId,
- clientSecret = clientSecret
- )
- )
- }
-
- fun storeInstance(db: AppDatabase, instance: Instance) {
- val maxTootChars = instance.max_toot_chars?.toInt() ?: Instance.DEFAULT_MAX_TOOT_CHARS
- val dbInstance = InstanceDatabaseEntity(
- //make sure not to normalize to https when localhost, to allow testing
- uri = normalizeOrNot(instance.uri.orEmpty()),
- title = instance.title.orEmpty(),
- max_toot_chars = maxTootChars,
- thumbnail = instance.thumbnail.orEmpty()
- )
- db.instanceDao().insertInstance(dbInstance)
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/utils/HtmlUtils.kt b/app/src/main/java/com/h/pixeldroid/utils/HtmlUtils.kt
deleted file mode 100644
index 2b2c73d2..00000000
--- a/app/src/main/java/com/h/pixeldroid/utils/HtmlUtils.kt
+++ /dev/null
@@ -1,126 +0,0 @@
-package com.h.pixeldroid.utils
-
-import android.content.Context
-import android.os.Build
-import android.text.Html
-import android.text.SpannableStringBuilder
-import android.text.Spanned
-import android.text.style.ClickableSpan
-import android.text.style.URLSpan
-import android.util.Log
-import android.view.View
-import android.widget.Toast
-import androidx.core.text.toSpanned
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.objects.Account.Companion.getAccountFromId
-import com.h.pixeldroid.objects.Mention
-import com.h.pixeldroid.utils.customSpans.ClickableSpanNoUnderline
-import java.net.URI
-import java.net.URISyntaxException
-import java.util.Locale
-
-
-class HtmlUtils {
- companion object {
-
- fun fromHtml(html: String): Spanned {
- val result: Spanned = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
- Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY)
- } else {
- Html.fromHtml(html)
- }
- return result.trim().toSpanned()
- }
-
- fun getDomain(urlString: String?): String {
- val uri: URI
- try {
- uri = URI(urlString!!)
- } catch (e: URISyntaxException) {
- return ""
- }
- val host: String = uri.host
- return if (host.startsWith("www.")) {
- host.substring(4)
- } else {
- host
- }
- }
-
- fun parseHTMLText(
- text : String,
- mentions: List?,
- api : PixelfedAPI,
- context: Context,
- credential: String
- ) : Spanned {
- //Convert text to spannable
- val content = fromHtml(text)
-
- //Retrive all links that should be made clickable
- val builder = SpannableStringBuilder(content)
- val urlSpans = content.getSpans(0, content.length, URLSpan::class.java)
-
- for(span in urlSpans) {
- val start = builder.getSpanStart(span)
- val end = builder.getSpanEnd(span)
- val flags = builder.getSpanFlags(span)
- val text = builder.subSequence(start, end)
- var customSpan: ClickableSpan? = null
-
- //Handle hashtags
- if (text[0] == '#') {
- val tag = text.subSequence(1, text.length).toString()
- customSpan = object : ClickableSpanNoUnderline() {
- override fun onClick(widget: View) {
- Toast.makeText(context, tag, Toast.LENGTH_SHORT).show()
- }
-
- }
- }
-
- //Handle mentions
- if(text[0] == '@' && !mentions.isNullOrEmpty()) {
- val accountUsername = text.subSequence(1, text.length).toString()
- var id: String? = null
-
- //Go through all mentions stored in the status
- for (mention in mentions) {
- if (mention.username.toLowerCase(Locale.ROOT)
- == accountUsername.toLowerCase(Locale.ROOT)
- ) {
- id = mention.id
-
- //Mentions can be of users in other domains
- if (mention.url.contains(getDomain(span.url))) {
- break
- }
- }
- }
-
- //Check that we found a user for the given mention
- if (id != null) {
- val accountId: String = id
- customSpan = object : ClickableSpanNoUnderline() {
- override fun onClick(widget: View) {
- Log.e("MENTION", "CLICKED")
- //Retrieve the account for the given profile
- getAccountFromId(accountId, api, context, credential)
- }
- }
- }
- }
-
- builder.removeSpan(span)
- builder.setSpan(customSpan, start, end, flags)
-
- // Add zero-width space after links in end of line to fix its too large hitbox.
- if (end >= builder.length || builder.subSequence(end, end + 1).toString() == "\n") {
- builder.insert(end, "\u200B")
- }
- }
-
- return builder
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/utils/ImageConverter.kt b/app/src/main/java/com/h/pixeldroid/utils/ImageConverter.kt
index 81c8b761..9e80fde7 100644
--- a/app/src/main/java/com/h/pixeldroid/utils/ImageConverter.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/ImageConverter.kt
@@ -9,7 +9,6 @@ import androidx.fragment.app.FragmentActivity
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.h.pixeldroid.R
-import java.io.File
class ImageConverter {
companion object {
diff --git a/app/src/main/java/com/h/pixeldroid/Pixeldroid.kt b/app/src/main/java/com/h/pixeldroid/utils/PixelDroidApplication.kt
similarity index 80%
rename from app/src/main/java/com/h/pixeldroid/Pixeldroid.kt
rename to app/src/main/java/com/h/pixeldroid/utils/PixelDroidApplication.kt
index 9b6ea30b..06fa92f3 100644
--- a/app/src/main/java/com/h/pixeldroid/Pixeldroid.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/PixelDroidApplication.kt
@@ -1,14 +1,13 @@
-package com.h.pixeldroid
+package com.h.pixeldroid.utils
import android.app.Application
import androidx.preference.PreferenceManager
-import com.h.pixeldroid.di.*
-import com.h.pixeldroid.utils.ThemeUtils
+import com.h.pixeldroid.utils.di.*
import com.mikepenz.iconics.Iconics
import org.ligi.tracedroid.TraceDroid
-class Pixeldroid: Application() {
+class PixelDroidApplication: Application() {
private lateinit var mApplicationComponent: ApplicationComponent
@@ -17,7 +16,7 @@ class Pixeldroid: Application() {
TraceDroid.init(this)
val sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(this)
- ThemeUtils.setThemeFromPreferences(sharedPreferences, resources)
+ setThemeFromPreferences(sharedPreferences, resources)
mApplicationComponent = DaggerApplicationComponent
.builder()
.applicationModule(ApplicationModule(this))
diff --git a/app/src/main/java/com/h/pixeldroid/utils/PostUtils.kt b/app/src/main/java/com/h/pixeldroid/utils/PostUtils.kt
deleted file mode 100644
index 5d8a5b0e..00000000
--- a/app/src/main/java/com/h/pixeldroid/utils/PostUtils.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.h.pixeldroid.utils
-
-import android.graphics.ColorMatrix
-
-abstract class PostUtils {
- companion object {
-
- fun censorColorMatrix(): ColorMatrix {
- val array: FloatArray = floatArrayOf( 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 1f, 0f )
- return ColorMatrix(array)
- }
-
- fun uncensorColorMatrix(): ColorMatrix {
- return ColorMatrix()
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/utils/ThemeUtils.kt b/app/src/main/java/com/h/pixeldroid/utils/ThemeUtils.kt
deleted file mode 100644
index 3a3e52bc..00000000
--- a/app/src/main/java/com/h/pixeldroid/utils/ThemeUtils.kt
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.h.pixeldroid.utils
-
-import android.content.SharedPreferences
-import android.content.res.Resources
-import android.os.Build
-import android.util.Log
-import androidx.appcompat.app.AppCompatDelegate
-import com.h.pixeldroid.R
-
-class ThemeUtils {
- companion object {
- /**
- * @brief Updates the application's theme depending on the given preferences and resources
- */
- fun setThemeFromPreferences(preferences: SharedPreferences, resources : Resources) {
- val themes = resources.getStringArray(R.array.theme_values)
- val theme = preferences.getString("theme", "")
- //Set the theme
- when(theme) {
- //Light
- themes[1] -> {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
- }
- //Dark
- themes[2] -> {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
- }
- else -> {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
- } else {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY)
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/utils/Utils.kt b/app/src/main/java/com/h/pixeldroid/utils/Utils.kt
index c7c81d40..a676e9b5 100644
--- a/app/src/main/java/com/h/pixeldroid/utils/Utils.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/Utils.kt
@@ -1,43 +1,47 @@
package com.h.pixeldroid.utils
import android.content.Context
+import android.content.SharedPreferences
+import android.content.res.Resources
import android.net.ConnectivityManager
-import android.widget.TextView
+import android.os.Build
+import androidx.appcompat.app.AppCompatDelegate
import com.h.pixeldroid.R
-import java.text.ParseException
-import java.util.Date
-class Utils {
- companion object {
- fun hasInternet(context: Context): Boolean {
- val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
- return cm.activeNetwork != null
+fun hasInternet(context: Context): Boolean {
+ val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
+ return cm.activeNetwork != null
+}
+
+fun normalizeDomain(domain: String): String {
+ return "https://" + domain
+ .replace("http://", "")
+ .replace("https://", "")
+ .trim(Char::isWhitespace)
+}
+
+
+/**
+ * @brief Updates the application's theme depending on the given preferences and resources
+ */
+fun setThemeFromPreferences(preferences: SharedPreferences, resources : Resources) {
+ val themes = resources.getStringArray(R.array.theme_values)
+ //Set the theme
+ when(preferences.getString("theme", "")) {
+ //Light
+ themes[1] -> {
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
}
-
- fun normalizeDomain(domain: String): String {
- return "https://" + domain
- .replace("http://", "")
- .replace("https://", "")
- .trim(Char::isWhitespace)
+ //Dark
+ themes[2] -> {
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
}
-
-
- fun setTextViewFromISO8601(date: Date, textView: TextView, absoluteTime: Boolean, context: Context) {
- val now = Date().time
-
- try {
- val then = date.time
- val formattedDate = android.text.format.DateUtils
- .getRelativeTimeSpanString(then, now,
- android.text.format.DateUtils.SECOND_IN_MILLIS,
- android.text.format.DateUtils.FORMAT_ABBREV_RELATIVE)
-
- textView.text = if(absoluteTime) context.getString(R.string.posted_on).format(date)
- else "$formattedDate"
-
- } catch (e: ParseException) {
- e.printStackTrace()
+ else -> {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
+ } else {
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY)
}
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/h/pixeldroid/api/PixelfedAPI.kt b/app/src/main/java/com/h/pixeldroid/utils/api/PixelfedAPI.kt
similarity index 98%
rename from app/src/main/java/com/h/pixeldroid/api/PixelfedAPI.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/PixelfedAPI.kt
index c6a1b94c..13b2e385 100644
--- a/app/src/main/java/com/h/pixeldroid/api/PixelfedAPI.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/PixelfedAPI.kt
@@ -1,6 +1,6 @@
-package com.h.pixeldroid.api
+package com.h.pixeldroid.utils.api
-import com.h.pixeldroid.objects.*
+import com.h.pixeldroid.utils.api.objects.*
import io.reactivex.Observable
import io.reactivex.Single
import okhttp3.MultipartBody
@@ -249,10 +249,10 @@ interface PixelfedAPI {
): Call
@GET("/api/v1/statuses/{id}")
- fun getStatus(
+ suspend fun getStatus(
@Header("Authorization") authorization: String,
@Path("id") accountId : String
- ): Call
+ ): Status
@Multipart
@POST("/api/v1/media")
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Account.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Account.kt
similarity index 95%
rename from app/src/main/java/com/h/pixeldroid/objects/Account.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Account.kt
index e65ea18d..df46d8f4 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Account.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Account.kt
@@ -1,11 +1,11 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import android.content.Context
import android.content.Intent
import android.util.Log
import androidx.core.content.ContextCompat.startActivity
-import com.h.pixeldroid.ProfileActivity
-import com.h.pixeldroid.api.PixelfedAPI
+import com.h.pixeldroid.profile.ProfileActivity
+import com.h.pixeldroid.utils.api.PixelfedAPI
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Application.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Application.kt
similarity index 87%
rename from app/src/main/java/com/h/pixeldroid/objects/Application.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Application.kt
index 6d86ed0e..7ee2aed6 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Application.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Application.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Attachment.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Attachment.kt
similarity index 92%
rename from app/src/main/java/com/h/pixeldroid/objects/Attachment.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Attachment.kt
index 37d0901d..4d9cc2a2 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Attachment.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Attachment.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Card.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Card.kt
similarity index 93%
rename from app/src/main/java/com/h/pixeldroid/objects/Card.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Card.kt
index 95a87abb..32b2cc56 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Card.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Card.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/utils/api/objects/Context.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Context.kt
new file mode 100644
index 00000000..244564fe
--- /dev/null
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Context.kt
@@ -0,0 +1,8 @@
+package com.h.pixeldroid.utils.api.objects
+
+import java.io.Serializable
+
+data class Context(
+ val ancestors : List,
+ val descendants : List
+) : Serializable
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/objects/DiscoverPost.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/DiscoverPost.kt
similarity index 85%
rename from app/src/main/java/com/h/pixeldroid/objects/DiscoverPost.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/DiscoverPost.kt
index e681c69c..ff1f3b86 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/DiscoverPost.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/DiscoverPost.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/DiscoverPosts.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/DiscoverPosts.kt
similarity index 75%
rename from app/src/main/java/com/h/pixeldroid/objects/DiscoverPosts.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/DiscoverPosts.kt
index e324cb85..1fdfb94f 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/DiscoverPosts.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/DiscoverPosts.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Emoji.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Emoji.kt
similarity index 86%
rename from app/src/main/java/com/h/pixeldroid/objects/Emoji.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Emoji.kt
index e68b4b79..f1116e55 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Emoji.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Emoji.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/FeedContent.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/FeedContent.kt
similarity index 77%
rename from app/src/main/java/com/h/pixeldroid/objects/FeedContent.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/FeedContent.kt
index ee4b9667..80ed4403 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/FeedContent.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/FeedContent.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
interface FeedContent {
val id: String?
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Field.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Field.kt
similarity index 56%
rename from app/src/main/java/com/h/pixeldroid/objects/Field.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Field.kt
index 828e3fda..8c85c2c1 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Field.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Field.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/History.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/History.kt
similarity index 73%
rename from app/src/main/java/com/h/pixeldroid/objects/History.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/History.kt
index 811ca67a..c3564411 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/History.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/History.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
data class History(
//Required attributes
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Instance.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Instance.kt
similarity index 89%
rename from app/src/main/java/com/h/pixeldroid/objects/Instance.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Instance.kt
index 3d9094e4..b8031b35 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Instance.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Instance.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
data class Instance (
val description: String?,
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Mention.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Mention.kt
similarity index 81%
rename from app/src/main/java/com/h/pixeldroid/objects/Mention.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Mention.kt
index 4a4e468f..ce3812b3 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Mention.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Mention.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/NodeInfo.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/NodeInfo.kt
similarity index 97%
rename from app/src/main/java/com/h/pixeldroid/objects/NodeInfo.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/NodeInfo.kt
index 51fb7567..32ff27e2 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/NodeInfo.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/NodeInfo.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
/*
See https://nodeinfo.diaspora.software/schema.html and https://pixelfed.social/api/nodeinfo/2.0.json
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Notification.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Notification.kt
similarity index 84%
rename from app/src/main/java/com/h/pixeldroid/objects/Notification.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Notification.kt
index a0caf2be..fc5bf9ce 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Notification.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Notification.kt
@@ -1,9 +1,9 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Index
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
import java.io.Serializable
import java.util.Date
@@ -26,9 +26,9 @@ https://docs.joinmastodon.org/entities/notification/
data class Notification(
//Required attributes
override val id: String,
- val type: NotificationType,
- val created_at: Date, //ISO 8601 Datetime
- val account: Account,
+ val type: NotificationType?,
+ val created_at: Date?, //ISO 8601 Datetime
+ val account: Account?,
//Optional attributes
val status: Status? = null,
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Poll.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Poll.kt
similarity index 56%
rename from app/src/main/java/com/h/pixeldroid/objects/Poll.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Poll.kt
index 7586a04e..2ccecacb 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Poll.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Poll.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Relationship.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Relationship.kt
similarity index 90%
rename from app/src/main/java/com/h/pixeldroid/objects/Relationship.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Relationship.kt
index b436e626..82e4f951 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Relationship.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Relationship.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Report.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Report.kt
similarity index 53%
rename from app/src/main/java/com/h/pixeldroid/objects/Report.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Report.kt
index 9d444f1e..f8e4630d 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Report.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Report.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Results.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Results.kt
similarity index 81%
rename from app/src/main/java/com/h/pixeldroid/objects/Results.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Results.kt
index 618e49a6..30674273 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Results.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Results.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Source.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Source.kt
similarity index 57%
rename from app/src/main/java/com/h/pixeldroid/objects/Source.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Source.kt
index 789ccac3..625532da 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Source.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Source.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Status.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Status.kt
similarity index 92%
rename from app/src/main/java/com/h/pixeldroid/objects/Status.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Status.kt
index 10546882..35d1712e 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Status.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Status.kt
@@ -1,9 +1,10 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import android.app.DownloadManager
import android.content.Context
import android.content.Intent
import android.database.Cursor
+import android.graphics.ColorMatrix
import android.graphics.ColorMatrixColorFilter
import android.net.Uri
import android.os.Environment
@@ -14,17 +15,11 @@ import android.view.View.VISIBLE
import android.widget.ImageView
import android.widget.TextView
import androidx.core.net.toUri
-import androidx.room.Entity
-import androidx.room.ForeignKey
-import androidx.room.Index
import com.google.android.material.snackbar.Snackbar
import com.h.pixeldroid.R
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
-import com.h.pixeldroid.utils.HtmlUtils.Companion.getDomain
-import com.h.pixeldroid.utils.HtmlUtils.Companion.parseHTMLText
-import com.h.pixeldroid.utils.PostUtils.Companion.censorColorMatrix
-import com.h.pixeldroid.utils.PostUtils.Companion.uncensorColorMatrix
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.posts.getDomain
+import com.h.pixeldroid.posts.parseHTMLText
import kotlinx.android.synthetic.main.post_fragment.view.*
import java.io.File
import java.io.Serializable
@@ -107,11 +102,13 @@ open class Status(
// Set dark layout and warning message
view.sensitiveWarning.visibility = VISIBLE
- view.postPicture.colorFilter = ColorMatrixColorFilter(censorColorMatrix())
+ val array = floatArrayOf(0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f, 1f, 0f)
+ val censorMatrix = ColorMatrix(array)
+ view.postPicture.colorFilter = ColorMatrixColorFilter(censorMatrix)
fun uncensorPicture(view: View) {
view.sensitiveWarning.visibility = GONE
- view.postPicture.colorFilter = ColorMatrixColorFilter(uncensorColorMatrix())
+ view.postPicture.clearColorFilter()
}
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Tag.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Tag.kt
similarity index 88%
rename from app/src/main/java/com/h/pixeldroid/objects/Tag.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Tag.kt
index 2414c252..1dcc8c9a 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Tag.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Tag.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
import java.io.Serializable
diff --git a/app/src/main/java/com/h/pixeldroid/objects/Token.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Token.kt
similarity index 78%
rename from app/src/main/java/com/h/pixeldroid/objects/Token.kt
rename to app/src/main/java/com/h/pixeldroid/utils/api/objects/Token.kt
index 8f08e538..8681d2fc 100644
--- a/app/src/main/java/com/h/pixeldroid/objects/Token.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Token.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.objects
+package com.h.pixeldroid.utils.api.objects
data class Token(
val access_token: String?,
diff --git a/app/src/main/java/com/h/pixeldroid/db/AppDatabase.kt b/app/src/main/java/com/h/pixeldroid/utils/db/AppDatabase.kt
similarity index 52%
rename from app/src/main/java/com/h/pixeldroid/db/AppDatabase.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/AppDatabase.kt
index de554851..876f6bc2 100644
--- a/app/src/main/java/com/h/pixeldroid/db/AppDatabase.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/AppDatabase.kt
@@ -1,17 +1,17 @@
-package com.h.pixeldroid.db
+package com.h.pixeldroid.utils.db
import androidx.room.Database
import androidx.room.RoomDatabase
import androidx.room.TypeConverters
-import com.h.pixeldroid.db.dao.*
-import com.h.pixeldroid.db.dao.feedContent.NotificationDao
-import com.h.pixeldroid.db.dao.feedContent.posts.HomePostDao
-import com.h.pixeldroid.db.dao.feedContent.posts.PublicPostDao
-import com.h.pixeldroid.db.entities.HomeStatusDatabaseEntity
-import com.h.pixeldroid.db.entities.InstanceDatabaseEntity
-import com.h.pixeldroid.db.entities.PublicFeedStatusDatabaseEntity
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
-import com.h.pixeldroid.objects.Notification
+import com.h.pixeldroid.utils.db.dao.*
+import com.h.pixeldroid.utils.db.dao.feedContent.NotificationDao
+import com.h.pixeldroid.utils.db.dao.feedContent.posts.HomePostDao
+import com.h.pixeldroid.utils.db.dao.feedContent.posts.PublicPostDao
+import com.h.pixeldroid.utils.db.entities.HomeStatusDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.PublicFeedStatusDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.api.objects.Notification
@Database(entities = [
InstanceDatabaseEntity::class,
diff --git a/app/src/main/java/com/h/pixeldroid/db/Converters.kt b/app/src/main/java/com/h/pixeldroid/utils/db/Converters.kt
similarity index 98%
rename from app/src/main/java/com/h/pixeldroid/db/Converters.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/Converters.kt
index c4c1cf5c..acf5aee0 100644
--- a/app/src/main/java/com/h/pixeldroid/db/Converters.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/Converters.kt
@@ -1,9 +1,9 @@
-package com.h.pixeldroid.db
+package com.h.pixeldroid.utils.db
import androidx.room.TypeConverter
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
-import com.h.pixeldroid.objects.*
+import com.h.pixeldroid.utils.api.objects.*
import java.util.*
class Converters {
diff --git a/app/src/main/java/com/h/pixeldroid/utils/db/DBUtils.kt b/app/src/main/java/com/h/pixeldroid/utils/db/DBUtils.kt
new file mode 100644
index 00000000..506dc799
--- /dev/null
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/DBUtils.kt
@@ -0,0 +1,46 @@
+package com.h.pixeldroid.utils.db
+
+import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.api.objects.Account
+import com.h.pixeldroid.utils.api.objects.Instance
+import com.h.pixeldroid.utils.normalizeDomain
+
+private fun normalizeOrNot(uri: String): String{
+ return if(uri.startsWith("http://localhost")){
+ uri
+ } else {
+ normalizeDomain(uri)
+ }
+}
+
+fun addUser(db: AppDatabase, account: Account, instance_uri: String, activeUser: Boolean = true,
+ accessToken: String, refreshToken: String?, clientId: String, clientSecret: String) {
+ db.userDao().insertUser(
+ UserDatabaseEntity(
+ user_id = account.id!!,
+ //make sure not to normalize to https when localhost, to allow testing
+ instance_uri = normalizeOrNot(instance_uri),
+ username = account.username!!,
+ display_name = account.getDisplayName(),
+ avatar_static = account.avatar_static.orEmpty(),
+ isActive = activeUser,
+ accessToken = accessToken,
+ refreshToken = refreshToken,
+ clientId = clientId,
+ clientSecret = clientSecret
+ )
+ )
+}
+
+fun storeInstance(db: AppDatabase, instance: Instance) {
+ val maxTootChars = instance.max_toot_chars?.toInt() ?: Instance.DEFAULT_MAX_TOOT_CHARS
+ val dbInstance = InstanceDatabaseEntity(
+ //make sure not to normalize to https when localhost, to allow testing
+ uri = normalizeOrNot(instance.uri.orEmpty()),
+ title = instance.title.orEmpty(),
+ max_toot_chars = maxTootChars,
+ thumbnail = instance.thumbnail.orEmpty()
+ )
+ db.instanceDao().insertInstance(dbInstance)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/h/pixeldroid/db/dao/InstanceDao.kt b/app/src/main/java/com/h/pixeldroid/utils/db/dao/InstanceDao.kt
similarity index 76%
rename from app/src/main/java/com/h/pixeldroid/db/dao/InstanceDao.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/dao/InstanceDao.kt
index 971db061..dad64a5a 100644
--- a/app/src/main/java/com/h/pixeldroid/db/dao/InstanceDao.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/dao/InstanceDao.kt
@@ -1,10 +1,10 @@
-package com.h.pixeldroid.db.dao
+package com.h.pixeldroid.utils.db.dao
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
-import com.h.pixeldroid.db.entities.InstanceDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity
@Dao
interface InstanceDao {
diff --git a/app/src/main/java/com/h/pixeldroid/db/dao/UserDao.kt b/app/src/main/java/com/h/pixeldroid/utils/db/dao/UserDao.kt
similarity index 88%
rename from app/src/main/java/com/h/pixeldroid/db/dao/UserDao.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/dao/UserDao.kt
index 78cdace8..0837495f 100644
--- a/app/src/main/java/com/h/pixeldroid/db/dao/UserDao.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/dao/UserDao.kt
@@ -1,10 +1,10 @@
-package com.h.pixeldroid.db.dao
+package com.h.pixeldroid.utils.db.dao
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
@Dao
interface UserDao {
diff --git a/app/src/main/java/com/h/pixeldroid/db/dao/feedContent/FeedContentDao.kt b/app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/FeedContentDao.kt
similarity index 79%
rename from app/src/main/java/com/h/pixeldroid/db/dao/feedContent/FeedContentDao.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/FeedContentDao.kt
index 02221374..22673b29 100644
--- a/app/src/main/java/com/h/pixeldroid/db/dao/feedContent/FeedContentDao.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/FeedContentDao.kt
@@ -1,9 +1,9 @@
-package com.h.pixeldroid.db.dao.feedContent
+package com.h.pixeldroid.utils.db.dao.feedContent
import androidx.paging.PagingSource
import androidx.room.Insert
import androidx.room.OnConflictStrategy
-import com.h.pixeldroid.objects.FeedContentDatabase
+import com.h.pixeldroid.utils.api.objects.FeedContentDatabase
interface FeedContentDao{
diff --git a/app/src/main/java/com/h/pixeldroid/db/dao/feedContent/NotificationDao.kt b/app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/NotificationDao.kt
similarity index 86%
rename from app/src/main/java/com/h/pixeldroid/db/dao/feedContent/NotificationDao.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/NotificationDao.kt
index 31a9c9e5..b4fa57d2 100644
--- a/app/src/main/java/com/h/pixeldroid/db/dao/feedContent/NotificationDao.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/NotificationDao.kt
@@ -1,9 +1,9 @@
-package com.h.pixeldroid.db.dao.feedContent
+package com.h.pixeldroid.utils.db.dao.feedContent
import androidx.paging.PagingSource
import androidx.room.Dao
import androidx.room.Query
-import com.h.pixeldroid.objects.Notification
+import com.h.pixeldroid.utils.api.objects.Notification
@Dao
interface NotificationDao: FeedContentDao {
diff --git a/app/src/main/java/com/h/pixeldroid/db/dao/feedContent/posts/HomePostDao.kt b/app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/posts/HomePostDao.kt
similarity index 78%
rename from app/src/main/java/com/h/pixeldroid/db/dao/feedContent/posts/HomePostDao.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/posts/HomePostDao.kt
index df507de6..3f7b1b4b 100644
--- a/app/src/main/java/com/h/pixeldroid/db/dao/feedContent/posts/HomePostDao.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/posts/HomePostDao.kt
@@ -1,10 +1,10 @@
-package com.h.pixeldroid.db.dao.feedContent.posts
+package com.h.pixeldroid.utils.db.dao.feedContent.posts
import androidx.paging.PagingSource
import androidx.room.Dao
import androidx.room.Query
-import com.h.pixeldroid.db.dao.feedContent.FeedContentDao
-import com.h.pixeldroid.db.entities.HomeStatusDatabaseEntity
+import com.h.pixeldroid.utils.db.dao.feedContent.FeedContentDao
+import com.h.pixeldroid.utils.db.entities.HomeStatusDatabaseEntity
@Dao
interface HomePostDao: FeedContentDao {
diff --git a/app/src/main/java/com/h/pixeldroid/db/dao/feedContent/posts/PublicPostDao.kt b/app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/posts/PublicPostDao.kt
similarity index 78%
rename from app/src/main/java/com/h/pixeldroid/db/dao/feedContent/posts/PublicPostDao.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/posts/PublicPostDao.kt
index a3755aea..6658ae40 100644
--- a/app/src/main/java/com/h/pixeldroid/db/dao/feedContent/posts/PublicPostDao.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/dao/feedContent/posts/PublicPostDao.kt
@@ -1,10 +1,10 @@
-package com.h.pixeldroid.db.dao.feedContent.posts
+package com.h.pixeldroid.utils.db.dao.feedContent.posts
import androidx.paging.PagingSource
import androidx.room.Dao
import androidx.room.Query
-import com.h.pixeldroid.db.dao.feedContent.FeedContentDao
-import com.h.pixeldroid.db.entities.PublicFeedStatusDatabaseEntity
+import com.h.pixeldroid.utils.db.dao.feedContent.FeedContentDao
+import com.h.pixeldroid.utils.db.entities.PublicFeedStatusDatabaseEntity
@Dao
interface PublicPostDao: FeedContentDao {
diff --git a/app/src/main/java/com/h/pixeldroid/db/entities/HomeStatusDatabaseEntity.kt b/app/src/main/java/com/h/pixeldroid/utils/db/entities/HomeStatusDatabaseEntity.kt
similarity index 96%
rename from app/src/main/java/com/h/pixeldroid/db/entities/HomeStatusDatabaseEntity.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/entities/HomeStatusDatabaseEntity.kt
index 47c5b113..d0a3fcf6 100644
--- a/app/src/main/java/com/h/pixeldroid/db/entities/HomeStatusDatabaseEntity.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/entities/HomeStatusDatabaseEntity.kt
@@ -1,10 +1,9 @@
-package com.h.pixeldroid.db.entities
+package com.h.pixeldroid.utils.db.entities
import androidx.room.Entity
import androidx.room.ForeignKey
-import androidx.room.Ignore
import androidx.room.Index
-import com.h.pixeldroid.objects.*
+import com.h.pixeldroid.utils.api.objects.*
import java.util.*
@Entity(
diff --git a/app/src/main/java/com/h/pixeldroid/db/entities/InstanceDatabaseEntity.kt b/app/src/main/java/com/h/pixeldroid/utils/db/entities/InstanceDatabaseEntity.kt
similarity index 75%
rename from app/src/main/java/com/h/pixeldroid/db/entities/InstanceDatabaseEntity.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/entities/InstanceDatabaseEntity.kt
index 949e6bad..4b647b2a 100644
--- a/app/src/main/java/com/h/pixeldroid/db/entities/InstanceDatabaseEntity.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/entities/InstanceDatabaseEntity.kt
@@ -1,8 +1,8 @@
-package com.h.pixeldroid.db.entities
+package com.h.pixeldroid.utils.db.entities
import androidx.room.Entity
import androidx.room.PrimaryKey
-import com.h.pixeldroid.objects.Instance
+import com.h.pixeldroid.utils.api.objects.Instance
@Entity(tableName = "instances")
data class InstanceDatabaseEntity (
diff --git a/app/src/main/java/com/h/pixeldroid/db/entities/PublicFeedStatusDatabaseEntity.kt b/app/src/main/java/com/h/pixeldroid/utils/db/entities/PublicFeedStatusDatabaseEntity.kt
similarity index 97%
rename from app/src/main/java/com/h/pixeldroid/db/entities/PublicFeedStatusDatabaseEntity.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/entities/PublicFeedStatusDatabaseEntity.kt
index 69fe20c1..f08b6eba 100644
--- a/app/src/main/java/com/h/pixeldroid/db/entities/PublicFeedStatusDatabaseEntity.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/entities/PublicFeedStatusDatabaseEntity.kt
@@ -1,9 +1,9 @@
-package com.h.pixeldroid.db.entities
+package com.h.pixeldroid.utils.db.entities
import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Index
-import com.h.pixeldroid.objects.*
+import com.h.pixeldroid.utils.api.objects.*
import java.util.*
@Entity(
diff --git a/app/src/main/java/com/h/pixeldroid/db/entities/UserDatabaseEntity.kt b/app/src/main/java/com/h/pixeldroid/utils/db/entities/UserDatabaseEntity.kt
similarity index 94%
rename from app/src/main/java/com/h/pixeldroid/db/entities/UserDatabaseEntity.kt
rename to app/src/main/java/com/h/pixeldroid/utils/db/entities/UserDatabaseEntity.kt
index fee41068..cd0e8b20 100644
--- a/app/src/main/java/com/h/pixeldroid/db/entities/UserDatabaseEntity.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/db/entities/UserDatabaseEntity.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.db.entities
+package com.h.pixeldroid.utils.db.entities
import androidx.room.Entity
import androidx.room.ForeignKey
diff --git a/app/src/main/java/com/h/pixeldroid/di/APIModule.kt b/app/src/main/java/com/h/pixeldroid/utils/di/APIModule.kt
similarity index 89%
rename from app/src/main/java/com/h/pixeldroid/di/APIModule.kt
rename to app/src/main/java/com/h/pixeldroid/utils/di/APIModule.kt
index 96cb0520..13939fbb 100644
--- a/app/src/main/java/com/h/pixeldroid/di/APIModule.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/di/APIModule.kt
@@ -1,8 +1,8 @@
-package com.h.pixeldroid.di
+package com.h.pixeldroid.utils.di
-import com.h.pixeldroid.api.PixelfedAPI
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.db.entities.UserDatabaseEntity
+import com.h.pixeldroid.utils.api.PixelfedAPI
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity
import dagger.Module
import dagger.Provides
import okhttp3.*
@@ -24,7 +24,7 @@ class APIModule{
class TokenAuthenticator(val user: UserDatabaseEntity) : Authenticator {
- val pixelfedAPI = PixelfedAPI.createFromUrl(user.instance_uri)
+ private val pixelfedAPI = PixelfedAPI.createFromUrl(user.instance_uri)
override fun authenticate(route: Route?, response: Response): Request? {
diff --git a/app/src/main/java/com/h/pixeldroid/di/ApplicationComponent.kt b/app/src/main/java/com/h/pixeldroid/utils/di/ApplicationComponent.kt
similarity index 61%
rename from app/src/main/java/com/h/pixeldroid/di/ApplicationComponent.kt
rename to app/src/main/java/com/h/pixeldroid/utils/di/ApplicationComponent.kt
index dddd7b11..253cd6e1 100644
--- a/app/src/main/java/com/h/pixeldroid/di/ApplicationComponent.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/di/ApplicationComponent.kt
@@ -1,11 +1,11 @@
-package com.h.pixeldroid.di
+package com.h.pixeldroid.utils.di
import android.app.Application
import android.content.Context
-import com.h.pixeldroid.BaseActivity
-import com.h.pixeldroid.Pixeldroid
-import com.h.pixeldroid.db.AppDatabase
-import com.h.pixeldroid.fragments.BaseFragment
+import com.h.pixeldroid.utils.BaseActivity
+import com.h.pixeldroid.utils.PixelDroidApplication
+import com.h.pixeldroid.utils.db.AppDatabase
+import com.h.pixeldroid.utils.BaseFragment
import dagger.Component
import javax.inject.Singleton
@@ -13,7 +13,7 @@ import javax.inject.Singleton
@Singleton
@Component(modules = [ApplicationModule::class, DatabaseModule::class, APIModule::class])
interface ApplicationComponent {
- fun inject(application: Pixeldroid?)
+ fun inject(application: PixelDroidApplication?)
fun inject(activity: BaseActivity?)
fun inject(feedFragment: BaseFragment)
diff --git a/app/src/main/java/com/h/pixeldroid/di/ApplicationModule.kt b/app/src/main/java/com/h/pixeldroid/utils/di/ApplicationModule.kt
similarity index 92%
rename from app/src/main/java/com/h/pixeldroid/di/ApplicationModule.kt
rename to app/src/main/java/com/h/pixeldroid/utils/di/ApplicationModule.kt
index 3c85c01a..16bca60b 100644
--- a/app/src/main/java/com/h/pixeldroid/di/ApplicationModule.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/di/ApplicationModule.kt
@@ -1,4 +1,4 @@
-package com.h.pixeldroid.di
+package com.h.pixeldroid.utils.di
import android.app.Application
import android.content.Context
diff --git a/app/src/main/java/com/h/pixeldroid/di/DatabaseModule.kt b/app/src/main/java/com/h/pixeldroid/utils/di/DatabaseModule.kt
similarity index 86%
rename from app/src/main/java/com/h/pixeldroid/di/DatabaseModule.kt
rename to app/src/main/java/com/h/pixeldroid/utils/di/DatabaseModule.kt
index 314091c5..d9fda875 100644
--- a/app/src/main/java/com/h/pixeldroid/di/DatabaseModule.kt
+++ b/app/src/main/java/com/h/pixeldroid/utils/di/DatabaseModule.kt
@@ -1,8 +1,8 @@
-package com.h.pixeldroid.di
+package com.h.pixeldroid.utils.di
import android.content.Context
import androidx.room.Room
-import com.h.pixeldroid.db.AppDatabase
+import com.h.pixeldroid.utils.db.AppDatabase
import dagger.Module
import dagger.Provides
import javax.inject.Singleton
diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml
index 9c826928..85205912 100644
--- a/app/src/main/res/layout/activity_about.xml
+++ b/app/src/main/res/layout/activity_about.xml
@@ -9,7 +9,7 @@
+ tools:context=".settings.AboutActivity">
+ tools:context=".postCreation.camera.CameraActivity">
+ tools:context=".profile.FollowsActivity">
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_photo_edit.xml b/app/src/main/res/layout/activity_photo_edit.xml
index 614d260d..3fc786aa 100644
--- a/app/src/main/res/layout/activity_photo_edit.xml
+++ b/app/src/main/res/layout/activity_photo_edit.xml
@@ -5,7 +5,7 @@
android:id="@+id/coordinator_edit"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".PhotoEditActivity">
+ tools:context=".postCreation.photoEdit.PhotoEditActivity">
-
+ tools:context=".posts.PostActivity">
diff --git a/app/src/main/res/layout/activity_post_creation.xml b/app/src/main/res/layout/activity_post_creation.xml
index 1327bf56..bf379ec0 100644
--- a/app/src/main/res/layout/activity_post_creation.xml
+++ b/app/src/main/res/layout/activity_post_creation.xml
@@ -1,7 +1,6 @@
diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml
index cc594110..cea17c5e 100644
--- a/app/src/main/res/layout/activity_profile.xml
+++ b/app/src/main/res/layout/activity_profile.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/profileRefreshLayout"
- tools:context=".ProfileActivity">
+ tools:context=".profile.ProfileActivity">
+ tools:context=".posts.ReportActivity">
-
-
+
diff --git a/app/src/main/res/layout/fragment_edit_image.xml b/app/src/main/res/layout/fragment_edit_image.xml
index 8952926a..f1fd162d 100644
--- a/app/src/main/res/layout/fragment_edit_image.xml
+++ b/app/src/main/res/layout/fragment_edit_image.xml
@@ -8,7 +8,7 @@
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
- tools:context=".fragments.EditImageFragment">
+ tools:context=".postCreation.photoEdit.EditImageFragment">
+ tools:context=".postCreation.photoEdit.FilterListFragment">
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/post_fragment.xml b/app/src/main/res/layout/post_fragment.xml
index 64259437..1b64a526 100644
--- a/app/src/main/res/layout/post_fragment.xml
+++ b/app/src/main/res/layout/post_fragment.xml
@@ -7,7 +7,7 @@
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
xmlns:sparkbutton="http://schemas.android.com/apk/res-auto"
- tools:context=".fragments.PostFragment">
+ tools:context=".posts.PostFragment">