Skip to content
Snippets Groups Projects
Commit 0b750b0b authored by adi.bk's avatar adi.bk
Browse files

- New activity for dispalying images using PhotoView

- Add new values to colors, strings and styles
parent 140c74bd
No related branches found
No related tags found
1 merge request!24Issue #231 - Open images in full screen when clicked
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
maven { url "https://jitpack.io" }
}
 
dependencies {
Loading
Loading
@@ -95,7 +96,6 @@ dependencies {
compile "com.android.support:cardview-v7:$supportLibVersion"
compile "com.android.support:palette-v7:$supportLibVersion"
compile "com.android.support:customtabs:$supportLibVersion"
compile 'com.android.support:multidex:1.0.1'
 
compile "com.squareup.retrofit2:retrofit:$retrofitVersion"
compile("com.squareup.retrofit2:converter-simplexml:$retrofitVersion") {
Loading
Loading
@@ -107,26 +107,17 @@ dependencies {
compile "com.squareup.retrofit2:adapter-rxjava2:$retrofitVersion"
compile "com.squareup.okhttp3:okhttp:$okHttpVersion"
compile "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"
compile 'com.squareup.picasso:picasso:2.5.2'
 
compile 'com.github.aurae.retrofit2:converter-logansquare:1.4.1'
 
compile "com.bluelinelabs:logansquare:$loganSquareVersion"
kapt "com.bluelinelabs:logansquare-compiler:$loganSquareVersion"
 
compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'
compile "com.jakewharton:butterknife:$butterknifeVersion"
kapt "com.jakewharton:butterknife-compiler:$butterknifeVersion"
compile 'com.jakewharton.timber:timber:4.5.1'
 
compile 'org.greenrobot:eventbus:3.0.0'
 
compile 'io.reactivex.rxjava2:rxjava:2.0.7'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
 
compile 'com.trello.rxlifecycle2:rxlifecycle-components:2.0.1'
 
compile 'net.danlew:android.joda:2.9.7'
 
compile "org.parceler:parceler-api:$parcelerVersion"
kapt "org.parceler:parceler:$parcelerVersion"
Loading
Loading
@@ -134,50 +125,25 @@ dependencies {
compile "com.github.Commit451.Reptar:reptar:$reptarVersion@aar"
compile "com.github.Commit451.Reptar:reptar-retrofit:$reptarVersion@aar"
compile "com.github.Commit451.Reptar:reptar-kotlin:$reptarVersion@aar"
compile 'com.github.Commit451:bypasses:1.1.0'
compile 'com.github.Commit451:ElasticDragDismissLayout:1.0.4'
compile "com.github.Commit451.AdapterLayout:adapterlayout:$adapterLayout"
compile "com.github.Commit451.AdapterLayout:adapterflowlayout:$adapterLayout"
compile 'com.github.Commit451.Easel:easel:2.1.1@aar'
compile 'com.github.Commit451:Gimbal:2.0.2'
compile 'com.github.Commit451:Teleprinter:1.0.2'
compile 'com.github.Commit451:BypassPicassoImageGetter:1.1.1'
compile 'com.github.Commit451:Jounce:1.0.1'
compile 'com.github.Commit451:ForegroundViews:2.3.1'
compile 'com.github.Commit451:MorphTransitions:2.0.0'
compile 'com.github.Commit451.Alakazam:alakazam:1.0.1@aar'
compile 'com.github.Commit451:Lift:1.2.0'
compile 'com.github.Commit451:OkioProGuardRules:1.11.0.0'
compile 'com.github.Commit451:RetrofitProguardRules:2.2.0.0'
compile 'com.github.Commit451:LoganSquareProGuardRules:1.3.7.0'
compile 'com.github.Commit451:EventBusProGuardRules:3.0.0.0'
 
compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
 
compile 'com.github.Jawnnypoo:PhysicsLayout:2.1.0'
 
compile 'com.alexgwyn.recyclerviewsquire:recyclerviewsquire:0.0.6'
 
compile 'com.github.ivbaranov:materiallettericon:0.2.2'
 
compile 'com.github.johnkil.android-robototextview:robototextview:3.0.0'
 
compile 'com.github.alorma:diff-textview:1.3.0'
 
compile 'com.wdullaer:materialdatetimepicker:3.1.3'
 
compile 'com.github.novoda:simple-chrome-custom-tabs:0.1.4'
 
compile "com.afollestad.material-dialogs:core:$materialDialogsVersion"
compile "com.afollestad.material-dialogs:commons:$materialDialogsVersion"
 
compile 'de.hdodenhof:circleimageview:2.1.0'
 
compile('com.vdurmont:emoji-java:3.2.0') {
exclude group: 'org.json', module: 'json'
}
 
compile 'com.github.jkwiecien:EasyImage:1.4.1'
 
compile('com.github.ozodrukh:CircularReveal:2.0.1@aar') {
transitive = true;
Loading
Loading
@@ -187,10 +153,48 @@ dependencies {
transitive = true;
}
 
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
 
compile 'com.android.support:multidex:1.0.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.github.aurae.retrofit2:converter-logansquare:1.4.1'
compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'
compile 'com.jakewharton.timber:timber:4.5.1'
compile 'org.greenrobot:eventbus:3.0.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.7'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.trello.rxlifecycle2:rxlifecycle-components:2.0.1'
compile 'net.danlew:android.joda:2.9.7'
compile 'com.github.Commit451:bypasses:1.1.0'
compile 'com.github.Commit451:ElasticDragDismissLayout:1.0.4'
compile 'com.github.Commit451.Easel:easel:2.1.1@aar'
compile 'com.github.Commit451:Gimbal:2.0.2'
compile 'com.github.Commit451:Teleprinter:1.0.2'
compile 'com.github.Commit451:BypassPicassoImageGetter:1.1.1'
compile 'com.github.Commit451:Jounce:1.0.1'
compile 'com.github.Commit451:ForegroundViews:2.3.1'
compile 'com.github.Commit451:MorphTransitions:2.0.0'
compile 'com.github.Commit451.Alakazam:alakazam:1.0.1@aar'
compile 'com.github.Commit451:Lift:1.2.0'
compile 'com.github.Commit451:OkioProGuardRules:1.11.0.0'
compile 'com.github.Commit451:RetrofitProguardRules:2.2.0.0'
compile 'com.github.Commit451:LoganSquareProGuardRules:1.3.7.0'
compile 'com.github.Commit451:EventBusProGuardRules:3.0.0.0'
compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
compile 'com.github.Jawnnypoo:PhysicsLayout:2.1.0'
compile 'com.alexgwyn.recyclerviewsquire:recyclerviewsquire:0.0.6'
compile 'com.github.ivbaranov:materiallettericon:0.2.2'
compile 'com.github.johnkil.android-robototextview:robototextview:3.0.0'
compile 'com.github.alorma:diff-textview:1.3.0'
compile 'com.wdullaer:materialdatetimepicker:3.1.3'
compile 'com.github.novoda:simple-chrome-custom-tabs:0.1.4'
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'com.github.jkwiecien:EasyImage:1.4.1'
compile 'com.github.chrisbanes:PhotoView:2.0.0'
compile 'com.android.support:support-v4:25.2.0'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
testCompile 'junit:junit:4.12'
testCompile 'org.robolectric:robolectric:3.3.1'
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.commit451.gitlab">
<manifest package="com.commit451.gitlab"
xmlns:android="http://schemas.android.com/apk/res/android">
 
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 
<application
android:name=".App"
Loading
Loading
@@ -13,145 +13,120 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".activity.LaunchActivity"
android:theme="@style/Activity.Launch">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<action android:name="android.intent.action.MAIN"/>
 
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".activity.ProjectsActivity"
android:launchMode="singleTask"
android:theme="@style/Activity.Projects" />
android:theme="@style/Activity.Projects"/>
<activity
android:name=".activity.GroupsActivity"
android:launchMode="singleTask"
android:theme="@style/Activity.Groups" />
android:theme="@style/Activity.Groups"/>
<activity
android:name=".activity.ActivityActivity"
android:launchMode="singleTask"
android:theme="@style/Activity.Activity" />
android:theme="@style/Activity.Activity"/>
<activity
android:name=".activity.TodosActivity"
android:launchMode="singleTask"
android:theme="@style/Activity.Todos" />
<activity android:name=".activity.ProjectActivity" />
android:theme="@style/Activity.Todos"/>
<activity android:name=".activity.ProjectActivity"/>
<activity
android:name=".activity.LoginActivity"
android:theme="@style/Activity.Login" />
<activity android:name=".activity.FileActivity" />
<activity android:name=".activity.IssueActivity" />
<activity android:name=".activity.DiffActivity" />
<activity android:name=".activity.AboutActivity" />
<activity android:name=".activity.AddUserActivity" />
android:theme="@style/Activity.Login"/>
<activity android:name=".activity.FileActivity"/>
<activity android:name=".activity.IssueActivity"/>
<activity android:name=".activity.DiffActivity"/>
<activity android:name=".activity.AboutActivity"/>
<activity android:name=".activity.AddUserActivity"/>
<activity
android:name=".activity.UserActivity"
android:theme="@style/Activity.User" />
<activity android:name=".activity.SearchActivity" />
android:theme="@style/Activity.User"/>
<activity android:name=".activity.SearchActivity"/>
<activity
android:name=".activity.GroupActivity"
android:theme="@style/Activity.Group" />
<activity android:name=".activity.MergeRequestActivity" />
<activity android:name=".activity.AddIssueActivity" />
<activity android:name=".activity.MilestoneActivity" />
<activity android:name=".activity.AddMilestoneActivity" />
<activity android:name=".activity.BuildActivity" />
android:theme="@style/Activity.Group"/>
<activity android:name=".activity.MergeRequestActivity"/>
<activity android:name=".activity.AddIssueActivity"/>
<activity android:name=".activity.MilestoneActivity"/>
<activity android:name=".activity.AddMilestoneActivity"/>
<activity android:name=".activity.BuildActivity"/>
<activity
android:name=".activity.LoadSomeInfoActivity"
android:theme="@style/Activity.Translucent" />
<activity android:name=".activity.SettingsActivity" />
<activity android:name=".activity.AddLabelActivity" />
<activity android:name=".activity.AddNewLabelActivity" />
android:theme="@style/Activity.Translucent"/>
<activity android:name=".activity.SettingsActivity"/>
<activity android:name=".activity.AddLabelActivity"/>
<activity android:name=".activity.AddNewLabelActivity"/>
<activity
android:name=".activity.PickBranchOrTagActivity"
android:theme="@style/Activity.Translucent" />
<activity android:name=".activity.WebLoginActivity" />
android:theme="@style/Activity.Translucent"/>
<activity android:name=".activity.WebLoginActivity"/>
<activity
android:name=".activity.AttachActivity"
android:theme="@style/Activity.Translucent" />
<activity android:name=".activity.DebugActivity" />
android:theme="@style/Activity.Translucent"/>
<activity
android:name=".activity.RoutingActivity"
android:launchMode="singleTask"
android:noHistory="true"
android:theme="@android:style/Theme.NoDisplay">
<!-- Standard Url -->
<intent-filter android:label="@string/deeplink_text">
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.VIEW"/>
 
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
 
<data android:scheme="@string/deeplink_scheme" />
<data android:scheme="@string/deeplink_scheme"/>
</intent-filter>
</activity>
<activity android:name=".widget.UserFeedWidgetConfigureActivity">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<activity android:name=".widget.ProjectFeedWidgetConfigureActivity">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<activity android:name=".widget.ProjectFeedWidgetConfigureProjectActivity" />
<activity android:name=".widget.ProjectFeedWidgetConfigureProjectActivity"/>
<activity
android:name=".activity.FullscreenImageActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/title_activity_fullscreen_image"
android:theme="@style/FullscreenTheme">
</activity>
<receiver
android:name=".widget.UserFeedWidgetProvider"
android:label="User Feed">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_user_feed" />
android:resource="@xml/widget_user_feed"/>
</receiver>
<receiver
android:name=".widget.ProjectFeedWidgetProvider"
android:label="Project Feed">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_project_feed" />
android:resource="@xml/widget_project_feed"/>
</receiver>
</application>
 
</manifest>
\ No newline at end of file
package com.commit451.gitlab.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.os.Parcelable
import android.support.v7.widget.Toolbar
import android.widget.ImageView
import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Project
import com.github.chrisbanes.photoview.PhotoViewAttacher
import com.squareup.picasso.Callback
import org.parceler.Parcels
/**
* An example full-screen activity that shows and hides the system UI (i.e.
* status bar and navigation/system bar) with user interaction.
*/
class FullscreenImageActivity : BaseActivity() {
@BindView(R.id.toolbar) lateinit var toolbar: Toolbar
lateinit var contentView: ImageView
lateinit var photoViewAttacher: PhotoViewAttacher
lateinit var project: Project
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_fullscreen_image)
ButterKnife.bind(this)
setToolbar()
project = Parcels.unwrap<Project>(intent.getParcelableExtra<Parcelable>(FullscreenImageActivity.EXTRA_PROJECT))
photoViewAttacher = PhotoViewAttacher(contentView)
photoViewAttacher.scaleType = ImageView.ScaleType.FIT_CENTER
var imageUrl: String = intent.getStringExtra(IMAGE_URL)
if (imageUrl.startsWith("/")) {
imageUrl = App.get().getAccount().serverUrl.toString() + project?.pathWithNamespace + imageUrl
}
App.get().picasso.load(imageUrl).into(contentView, object:Callback {
override fun onSuccess() {
photoViewAttacher.update()
}
override fun onError() {}
})
}
private fun setToolbar() {
toolbar.setNavigationIcon(R.drawable.ic_back_24dp)
toolbar.title = ""
setSupportActionBar(toolbar)
}
override fun onSupportNavigateUp(): Boolean {
onBackPressed()
return true
}
companion object {
val IMAGE_URL = "url"
private val EXTRA_PROJECT = "extra_project"
fun newIntent(context: Context, project: Project): Intent {
val intent = Intent(context, FullscreenImageActivity::class.java)
intent.putExtra(EXTRA_PROJECT, Parcels.wrap(project))
return intent
}
}
}
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
tools:context="com.commit451.gitlab.activity.FullscreenImageActivity">
<com.github.chrisbanes.photoview.PhotoView
android:id="@+id/fullscreen_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:keepScreenOn="true"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_marginTop="32dp"
android:background="@android:color/transparent"/>
</FrameLayout>
\ No newline at end of file
Loading
Loading
@@ -23,5 +23,5 @@
<color name="window_background">#303030</color>
 
<color name="scrim">#99323232</color>
<color name="black_overlay">#66000000</color>
</resources>
\ No newline at end of file
Loading
Loading
@@ -462,4 +462,6 @@
<string name="no_branches">No branches</string>
<string name="no_tags">No tags</string>
<string name="fetching_some_details">Fetching some details</string>
<string name="title_activity_fullscreen_image">FullscreenImageActivity</string>
</resources>
\ No newline at end of file
Loading
Loading
@@ -6,14 +6,15 @@
<item name="colorPrimary">@color/main_blue</item>
<item name="colorAccent">@color/yellow</item>
<item name="colorPrimaryDark">@color/main_blue_darker</item>
<item name="android:navigationBarColor" tools:targetApi="lollipop">@color/main_blue_darker</item>
<item name="android:navigationBarColor" tools:targetApi="lollipop">@color/main_blue_darker
</item>
<item name="android:windowContentTransitions" tools:ignore="NewApi">true</item>
<item name="android:windowBackground">@color/window_background</item>
<item name="dialogTheme">@style/AppDialogTheme</item>
<item name="alertDialogTheme">@style/AppDialogTheme</item>
</style>
 
<style name="Activity" parent="AppTheme" />
<style name="Activity" parent="AppTheme"/>
 
<style name="Activity.Login">
<item name="android:windowBackground">?attr/colorPrimary</item>
Loading
Loading
@@ -71,4 +72,14 @@
<item name="android:foreground">?attr/selectableItemBackground</item>
</style>
 
<style name="FullscreenTheme" parent="AppTheme">
<item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowBackground">@null</item>
</style>
<style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">
<item name="android:background">@color/black_overlay</item>
</style>
</resources>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment