mirror of
https://github.com/k0shk0sh/FastHub.git
synced 2026-01-25 14:47:05 +00:00
preparing for gist editing.
This commit is contained in:
parent
e16732d63c
commit
0e69d13ff7
@ -166,12 +166,12 @@ dependencies {
|
||||
implementation 'com.apollographql.apollo:apollo-rx2-support:0.4.0'
|
||||
implementation 'com.jaredrummler:android-device-names:1.1.4'
|
||||
compileOnly "org.projectlombok:lombok:${lombokVersion}"
|
||||
kapt "io.requery:requery-processor:${requery}"
|
||||
kapt "org.projectlombok:lombok:${lombokVersion}"
|
||||
kapt "com.evernote:android-state-processor:${state_version}"
|
||||
kapt "com.jakewharton:butterknife-compiler:${butterKnifeVersion}"
|
||||
kapt 'com.github.matthiasrobbers:shortbread-compiler:1.0.1'
|
||||
kapt "org.projectlombok:lombok:${lombokVersion}"
|
||||
kapt "io.requery:requery-processor:${requery}"
|
||||
// testImplementation "net.grandcentrix.thirtyinch:thirtyinch-test:$thirtyinchVersion"
|
||||
testImplementation "junit:junit:${junitVersion}"
|
||||
testImplementation "org.mockito:mockito-core:${mockitoVersion}"
|
||||
|
||||
@ -19,23 +19,23 @@ import lombok.Setter;
|
||||
public class CreateGistModel implements Parcelable {
|
||||
private HashMap<String, FilesListModel> files;
|
||||
private String description;
|
||||
@SerializedName("public") private boolean publicGist;
|
||||
@SerializedName("public") private Boolean publicGist;
|
||||
|
||||
@Override public int describeContents() { return 0; }
|
||||
|
||||
@Override public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeSerializable(this.files);
|
||||
dest.writeString(this.description);
|
||||
dest.writeByte(this.publicGist ? (byte) 1 : (byte) 0);
|
||||
dest.writeValue(this.publicGist);
|
||||
}
|
||||
|
||||
@SuppressWarnings({"WeakerAccess", "unchecked"}) protected CreateGistModel(Parcel in) {
|
||||
@SuppressWarnings("unchecked") private CreateGistModel(Parcel in) {
|
||||
this.files = (HashMap<String, FilesListModel>) in.readSerializable();
|
||||
this.description = in.readString();
|
||||
this.publicGist = in.readByte() != 0;
|
||||
this.publicGist = (Boolean) in.readValue(Boolean.class.getClassLoader());
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<CreateGistModel> CREATOR = new Parcelable.Creator<CreateGistModel>() {
|
||||
public static final Creator<CreateGistModel> CREATOR = new Creator<CreateGistModel>() {
|
||||
@Override public CreateGistModel createFromParcel(Parcel source) {return new CreateGistModel(source);}
|
||||
|
||||
@Override public CreateGistModel[] newArray(int size) {return new CreateGistModel[size];}
|
||||
|
||||
@ -18,9 +18,9 @@ public class FilesListModel implements Parcelable, Serializable {
|
||||
private String filename;
|
||||
private String type;
|
||||
private String rawUrl;
|
||||
private long size;
|
||||
private Long size;
|
||||
private String content;
|
||||
private boolean needFetching;
|
||||
private Boolean needFetching;
|
||||
private String language;
|
||||
|
||||
@Override public int describeContents() { return 0; }
|
||||
@ -29,19 +29,19 @@ public class FilesListModel implements Parcelable, Serializable {
|
||||
dest.writeString(this.filename);
|
||||
dest.writeString(this.type);
|
||||
dest.writeString(this.rawUrl);
|
||||
dest.writeLong(this.size);
|
||||
dest.writeValue(this.size);
|
||||
dest.writeString(this.content);
|
||||
dest.writeByte(this.needFetching ? (byte) 1 : (byte) 0);
|
||||
dest.writeValue(this.needFetching);
|
||||
dest.writeString(this.language);
|
||||
}
|
||||
|
||||
private FilesListModel(Parcel in) {
|
||||
protected FilesListModel(Parcel in) {
|
||||
this.filename = in.readString();
|
||||
this.type = in.readString();
|
||||
this.rawUrl = in.readString();
|
||||
this.size = in.readLong();
|
||||
this.size = (Long) in.readValue(Long.class.getClassLoader());
|
||||
this.content = in.readString();
|
||||
this.needFetching = in.readByte() != 0;
|
||||
this.needFetching = (Boolean) in.readValue(Boolean.class.getClassLoader());
|
||||
this.language = in.readString();
|
||||
}
|
||||
|
||||
|
||||
@ -151,9 +151,9 @@ import lombok.Setter;
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@NonNull public static List<FragmentPagerAdapterModel> buildForGist(@NonNull Context context, @NonNull Gist gistsModel) {
|
||||
@NonNull public static List<FragmentPagerAdapterModel> buildForGist(@NonNull Context context, @NonNull Gist gistsModel, boolean isOwner) {
|
||||
|
||||
return Stream.of(new FragmentPagerAdapterModel(context.getString(R.string.files), GistFilesListFragment.newInstance(gistsModel.getFiles())),
|
||||
return Stream.of(new FragmentPagerAdapterModel(context.getString(R.string.files), GistFilesListFragment.newInstance(gistsModel.getFiles(), isOwner)),
|
||||
new FragmentPagerAdapterModel(context.getString(R.string.comments), GistCommentsFragment.newInstance(gistsModel.getGistId())))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ public interface GistService {
|
||||
|
||||
@POST("gists") Observable<Gist> createGist(@Body CreateGistModel gistBody);
|
||||
|
||||
@POST("gists/{id}") Observable<Gist> editGist(@Body CreateGistModel gistBody, @NonNull @Path("id") String id);
|
||||
@PATCH("gists/{id}") Observable<Gist> editGist(@Body CreateGistModel gistBody, @NonNull @Path("id") String id);
|
||||
|
||||
@DELETE("gists/{id}") Observable<Response<Boolean>> deleteGist(@Path("id") String id);
|
||||
|
||||
|
||||
@ -17,13 +17,16 @@ import java.util.List;
|
||||
|
||||
public class GistFilesAdapter extends BaseRecyclerAdapter<FilesListModel, GistFilesViewHolder, BaseViewHolder
|
||||
.OnItemClickListener<FilesListModel>> {
|
||||
private boolean isOwner;
|
||||
|
||||
public GistFilesAdapter(@NonNull List<FilesListModel> data, @Nullable BaseViewHolder.OnItemClickListener<FilesListModel> listener) {
|
||||
public GistFilesAdapter(@NonNull List<FilesListModel> data, @Nullable BaseViewHolder.OnItemClickListener<FilesListModel> listener,
|
||||
boolean isOwner) {
|
||||
super(data, listener);
|
||||
this.isOwner = isOwner;
|
||||
}
|
||||
|
||||
@Override protected GistFilesViewHolder viewHolder(ViewGroup parent, int viewType) {
|
||||
return GistFilesViewHolder.newInstance(parent, this);
|
||||
return GistFilesViewHolder.newInstance(parent, this, isOwner);
|
||||
}
|
||||
|
||||
@Override protected void onBindView(GistFilesViewHolder holder, int position) {
|
||||
|
||||
@ -13,6 +13,7 @@ import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder
|
||||
|
||||
class TrendingAdapter(data: MutableList<TrendingModel>) : BaseRecyclerAdapter<TrendingModel,
|
||||
TrendingViewHolder, BaseViewHolder.OnItemClickListener<TrendingModel>>(data) {
|
||||
|
||||
override fun viewHolder(parent: ViewGroup?, viewType: Int): TrendingViewHolder {
|
||||
return TrendingViewHolder(BaseViewHolder.getView(parent!!, R.layout.trending_row_item), this)
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import com.fastaccess.R;
|
||||
import com.fastaccess.data.dao.FilesListModel;
|
||||
import com.fastaccess.ui.adapter.GistFilesAdapter;
|
||||
import com.fastaccess.ui.widgets.FontTextView;
|
||||
import com.fastaccess.ui.widgets.ForegroundImageView;
|
||||
import com.fastaccess.ui.widgets.SpannableBuilder;
|
||||
import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder;
|
||||
|
||||
@ -20,23 +21,32 @@ import butterknife.BindView;
|
||||
|
||||
public class GistFilesViewHolder extends BaseViewHolder<FilesListModel> {
|
||||
|
||||
|
||||
@BindView(R.id.fileName) FontTextView fileName;
|
||||
@BindView(R.id.language) FontTextView language;
|
||||
@BindView(R.id.size) FontTextView size;
|
||||
@BindView(R.id.delete) ForegroundImageView delete;
|
||||
@BindView(R.id.edit) ForegroundImageView edit;
|
||||
private boolean isOwner;
|
||||
|
||||
private GistFilesViewHolder(@NonNull View itemView, GistFilesAdapter adapter) {
|
||||
private GistFilesViewHolder(@NonNull View itemView, GistFilesAdapter adapter, boolean isOwner) {
|
||||
super(itemView, adapter);
|
||||
|
||||
this.isOwner = isOwner;
|
||||
if (isOwner) {
|
||||
delete.setOnClickListener(this);
|
||||
edit.setOnClickListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
public static GistFilesViewHolder newInstance(@NonNull ViewGroup parent, GistFilesAdapter adapter) {
|
||||
return new GistFilesViewHolder(getView(parent, R.layout.gist_files_row_item), adapter);
|
||||
public static GistFilesViewHolder newInstance(@NonNull ViewGroup parent, GistFilesAdapter adapter, boolean isOwner) {
|
||||
return new GistFilesViewHolder(getView(parent, R.layout.gist_files_row_item), adapter, isOwner);
|
||||
}
|
||||
|
||||
@Override public void bind(@NonNull FilesListModel filesListModel) {
|
||||
fileName.setText(filesListModel.getFilename());
|
||||
language.setText(SpannableBuilder.builder().bold(filesListModel.getType()));
|
||||
size.setText(Formatter.formatFileSize(size.getContext(), filesListModel.getSize()));
|
||||
delete.setVisibility(isOwner ? View.VISIBLE : View.GONE);
|
||||
edit.setVisibility(isOwner ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,12 +4,11 @@ import android.annotation.SuppressLint
|
||||
import android.net.Uri
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import butterknife.BindView
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.data.dao.model.Login
|
||||
import com.fastaccess.ui.widgets.AvatarLayout
|
||||
import com.fastaccess.ui.widgets.FontTextView
|
||||
import com.fastaccess.ui.widgets.bindOptionalView
|
||||
import com.fastaccess.ui.widgets.bindView
|
||||
import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter
|
||||
import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder
|
||||
|
||||
@ -19,8 +18,9 @@ import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder
|
||||
|
||||
class LoginViewHolder private constructor(itemView: View, adapter: BaseRecyclerAdapter<*, *, *>?) :
|
||||
BaseViewHolder<Login>(itemView, adapter) {
|
||||
private val avatarLayout: AvatarLayout? by bindOptionalView(R.id.avatarLayout)
|
||||
private val title: FontTextView by bindView(R.id.title)
|
||||
|
||||
val avatarLayout: AvatarLayout? by lazy { itemView.findViewById<AvatarLayout>(R.id.avatarLayout) as AvatarLayout }
|
||||
@BindView(R.id.title) lateinit var title: FontTextView
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun bind(login: Login) {
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
package com.fastaccess.ui.adapter.viewholder
|
||||
|
||||
import android.view.View
|
||||
import butterknife.BindView
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.data.dao.TrendingModel
|
||||
import com.fastaccess.helper.Logger
|
||||
import com.fastaccess.provider.colors.ColorsProvider
|
||||
import com.fastaccess.provider.emoji.EmojiParser
|
||||
import com.fastaccess.ui.widgets.FontTextView
|
||||
import com.fastaccess.ui.widgets.bindView
|
||||
import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter
|
||||
import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder
|
||||
|
||||
@ -18,12 +18,13 @@ import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder
|
||||
open class TrendingViewHolder(itemView: View, adapter: BaseRecyclerAdapter<TrendingModel,
|
||||
TrendingViewHolder, OnItemClickListener<TrendingModel>>) : BaseViewHolder<TrendingModel>(itemView, adapter) {
|
||||
|
||||
private val title: FontTextView by bindView(R.id.title)
|
||||
private val description: FontTextView by bindView(R.id.description)
|
||||
private val todayStars: FontTextView by bindView(R.id.todayStars)
|
||||
private val stars: FontTextView by bindView(R.id.stars)
|
||||
private val fork: FontTextView by bindView(R.id.forks)
|
||||
private val lang: FontTextView by bindView(R.id.language)
|
||||
@BindView(R.id.title) lateinit var title: FontTextView
|
||||
@BindView(R.id.description) lateinit var description: FontTextView
|
||||
@BindView(R.id.todayStars) lateinit var todayStars: FontTextView
|
||||
@BindView(R.id.stars) lateinit var stars: FontTextView
|
||||
@BindView(R.id.forks) lateinit var fork: FontTextView
|
||||
@BindView(R.id.language) lateinit var lang: FontTextView
|
||||
|
||||
|
||||
override fun bind(t: TrendingModel) {
|
||||
title.text = t.title
|
||||
|
||||
@ -15,8 +15,10 @@ import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
||||
import com.fastaccess.R;
|
||||
import com.fastaccess.data.dao.FilesListModel;
|
||||
import com.fastaccess.data.dao.FragmentPagerAdapterModel;
|
||||
import com.fastaccess.data.dao.model.Gist;
|
||||
import com.fastaccess.data.dao.model.Login;
|
||||
import com.fastaccess.helper.ActivityHelper;
|
||||
import com.fastaccess.helper.BundleConstant;
|
||||
import com.fastaccess.helper.Bundler;
|
||||
@ -35,6 +37,8 @@ import com.fastaccess.ui.widgets.ForegroundImageView;
|
||||
import com.fastaccess.ui.widgets.ViewPagerView;
|
||||
import com.fastaccess.ui.widgets.dialog.MessageDialogView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.OnClick;
|
||||
|
||||
@ -220,7 +224,8 @@ public class GistActivity extends BaseActivity<GistMvp.View, GistPresenter>
|
||||
date.setText(ParseDateFormat.getTimeAgo(gistsModel.getCreatedAt()));
|
||||
}
|
||||
size.setText(Formatter.formatFileSize(this, gistsModel.getSize()));
|
||||
pager.setAdapter(new FragmentsPagerAdapter(getSupportFragmentManager(), FragmentPagerAdapterModel.buildForGist(this, gistsModel)));
|
||||
pager.setAdapter(new FragmentsPagerAdapter(getSupportFragmentManager(), FragmentPagerAdapterModel.buildForGist(this, gistsModel
|
||||
, Login.getUser().getLogin().equalsIgnoreCase(login))));
|
||||
tabs.setupWithViewPager(pager);
|
||||
pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
|
||||
@Override public void onPageSelected(int position) {
|
||||
@ -248,11 +253,16 @@ public class GistActivity extends BaseActivity<GistMvp.View, GistPresenter>
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onUpdateGist(@NonNull List<FilesListModel> files, @NonNull String filename) {
|
||||
getPresenter().onUpdateGist(files, filename);
|
||||
}
|
||||
|
||||
private void hideShowFab() {
|
||||
if (pager.getCurrentItem() == 1) {
|
||||
fab.show();
|
||||
fab.setImageResource(R.drawable.ic_comment);
|
||||
} else {
|
||||
fab.hide();
|
||||
fab.setImageResource(R.drawable.ic_add);
|
||||
}
|
||||
fab.show();
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,8 +4,12 @@ import android.content.Intent;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.fastaccess.data.dao.FilesListModel;
|
||||
import com.fastaccess.data.dao.model.Gist;
|
||||
import com.fastaccess.ui.base.mvp.BaseMvp;
|
||||
import com.fastaccess.ui.modules.gists.gist.files.GistFilesListMvp;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Kosh on 12 Nov 2016, 12:17 PM
|
||||
@ -13,7 +17,7 @@ import com.fastaccess.ui.base.mvp.BaseMvp;
|
||||
|
||||
interface GistMvp {
|
||||
|
||||
interface View extends BaseMvp.FAView {
|
||||
interface View extends BaseMvp.FAView, GistFilesListMvp.UpdateGistCallback {
|
||||
void onSuccessDeleted();
|
||||
|
||||
void onErrorDeleting();
|
||||
@ -48,5 +52,7 @@ interface GistMvp {
|
||||
void checkStarring(@NonNull String gistId);
|
||||
|
||||
void onWorkOffline(@NonNull String gistId);
|
||||
|
||||
void onUpdateGist(@NonNull List<FilesListModel> files, String filename);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,13 +5,21 @@ import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.annimon.stream.Collectors;
|
||||
import com.annimon.stream.Stream;
|
||||
import com.fastaccess.data.dao.CreateGistModel;
|
||||
import com.fastaccess.data.dao.FilesListModel;
|
||||
import com.fastaccess.data.dao.model.Gist;
|
||||
import com.fastaccess.data.dao.model.Login;
|
||||
import com.fastaccess.helper.BundleConstant;
|
||||
import com.fastaccess.helper.Logger;
|
||||
import com.fastaccess.helper.RxHelper;
|
||||
import com.fastaccess.provider.rest.RestProvider;
|
||||
import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Kosh on 12 Nov 2016, 12:17 PM
|
||||
*/
|
||||
@ -106,4 +114,27 @@ class GistPresenter extends BasePresenter<GistMvp.View> implements GistMvp.Prese
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onUpdateGist(@NonNull List<FilesListModel> files, @NonNull String filename) {
|
||||
CreateGistModel createGistModel = new CreateGistModel();
|
||||
createGistModel.setDescription(gist.getDescription());
|
||||
Logger.e(filename);
|
||||
if (!files.isEmpty()) {
|
||||
HashMap<String, FilesListModel> map = Stream.of(files)
|
||||
.collect(Collectors.toMap(FilesListModel::getFilename, filesListModel -> filesListModel, HashMap::new));
|
||||
map.put(filename, new FilesListModel());
|
||||
createGistModel.setFiles(map);
|
||||
} else {
|
||||
HashMap<String, FilesListModel> map = new HashMap<>();
|
||||
map.put(filename, new FilesListModel());
|
||||
createGistModel.setFiles(map);
|
||||
}
|
||||
makeRestCall(RestProvider.getGistService(isEnterprise()).editGist(createGistModel, gistId),
|
||||
gist1 -> {
|
||||
if (gist1 != null) {
|
||||
gist = gist1;
|
||||
sendToView(GistMvp.View::onSetupDetails);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.fastaccess.ui.modules.gists.gist.files;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
@ -19,6 +20,7 @@ import com.fastaccess.provider.rest.RestProvider;
|
||||
import com.fastaccess.ui.adapter.GistFilesAdapter;
|
||||
import com.fastaccess.ui.base.BaseFragment;
|
||||
import com.fastaccess.ui.modules.code.CodeViewerActivity;
|
||||
import com.fastaccess.ui.modules.gists.gist.files.GistFilesListMvp.UpdateGistCallback;
|
||||
import com.fastaccess.ui.widgets.StateLayout;
|
||||
import com.fastaccess.ui.widgets.dialog.MessageDialogView;
|
||||
import com.fastaccess.ui.widgets.recyclerview.DynamicRecyclerView;
|
||||
@ -39,15 +41,32 @@ public class GistFilesListFragment extends BaseFragment<GistFilesListMvp.View, G
|
||||
@BindView(R.id.refresh) SwipeRefreshLayout refresh;
|
||||
@BindView(R.id.stateLayout) StateLayout stateLayout;
|
||||
@BindView(R.id.fastScroller) RecyclerViewFastScroller fastScroller;
|
||||
private GistFilesAdapter adapter;
|
||||
private UpdateGistCallback updateGistCallback;
|
||||
|
||||
public static GistFilesListFragment newInstance(@NonNull GithubFileModel gistsModel) {
|
||||
public static GistFilesListFragment newInstance(@NonNull GithubFileModel gistsModel, boolean isOwner) {
|
||||
GistFilesListFragment view = new GistFilesListFragment();
|
||||
view.setArguments(Bundler.start()
|
||||
.putParcelableArrayList(BundleConstant.ITEM, new ArrayList<>(gistsModel.values()))
|
||||
.put(BundleConstant.EXTRA_TYPE, isOwner)
|
||||
.end());
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
if (getParentFragment() instanceof UpdateGistCallback) {
|
||||
updateGistCallback = (UpdateGistCallback) getParentFragment();
|
||||
} else if (context instanceof UpdateGistCallback) {
|
||||
updateGistCallback = (UpdateGistCallback) context;
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onDetach() {
|
||||
updateGistCallback = null;
|
||||
super.onDetach();
|
||||
}
|
||||
|
||||
@Override protected int fragmentLayout() {
|
||||
return R.layout.small_grid_refresh_list;
|
||||
}
|
||||
@ -58,6 +77,7 @@ public class GistFilesListFragment extends BaseFragment<GistFilesListMvp.View, G
|
||||
|
||||
@Override protected void onFragmentCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
ArrayList<FilesListModel> filesListModel = getArguments().getParcelableArrayList(BundleConstant.ITEM);
|
||||
boolean isOwner = getArguments().getBoolean(BundleConstant.EXTRA_TYPE);
|
||||
stateLayout.hideReload();
|
||||
stateLayout.setEmptyText(R.string.no_files);
|
||||
recycler.setEmptyView(stateLayout);
|
||||
@ -66,25 +86,31 @@ public class GistFilesListFragment extends BaseFragment<GistFilesListMvp.View, G
|
||||
return;
|
||||
}
|
||||
if (!filesListModel.isEmpty()) {
|
||||
recycler.setAdapter(new GistFilesAdapter(filesListModel, getPresenter()));
|
||||
adapter = new GistFilesAdapter(filesListModel, getPresenter(), isOwner);
|
||||
recycler.setAdapter(adapter);
|
||||
}
|
||||
fastScroller.attachRecyclerView(recycler);
|
||||
}
|
||||
|
||||
@Override public void onOpenFile(@NonNull FilesListModel item) {
|
||||
if (item.getRawUrl() != null) {
|
||||
if (item.getSize() > FileHelper.ONE_MB && !MarkDownProvider.isImage(item.getRawUrl())) {
|
||||
MessageDialogView.newInstance(getString(R.string.big_file), getString(R.string.big_file_description), false, true,
|
||||
Bundler.start().put(BundleConstant.YES_NO_EXTRA, true).put(BundleConstant.EXTRA, item.getRawUrl()).end())
|
||||
.show(getChildFragmentManager(), "MessageDialogView");
|
||||
} else {
|
||||
CodeViewerActivity.startActivity(getContext(), item.getRawUrl(), item.getRawUrl());
|
||||
}
|
||||
} else {
|
||||
showErrorMessage(getString(R.string.no_url));
|
||||
if (canOpen(item)) {
|
||||
CodeViewerActivity.startActivity(getContext(), item.getRawUrl(), item.getRawUrl());
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onDeleteFile(@NonNull FilesListModel item, int position) {
|
||||
MessageDialogView.newInstance(getString(R.string.delete), getString(R.string.confirm_message), false,
|
||||
Bundler.start()
|
||||
.put(BundleConstant.ID, position)
|
||||
.put(BundleConstant.YES_NO_EXTRA, true)
|
||||
.end())
|
||||
.show(getChildFragmentManager(), MessageDialogView.TAG);
|
||||
}
|
||||
|
||||
@Override public void onEditFile(@NonNull FilesListModel item, int position) {
|
||||
|
||||
}
|
||||
|
||||
@Override public void onMessageDialogActionClicked(boolean isOk, @Nullable Bundle bundle) {
|
||||
super.onMessageDialogActionClicked(isOk, bundle);
|
||||
if (isOk && bundle != null) {
|
||||
@ -93,6 +119,15 @@ public class GistFilesListFragment extends BaseFragment<GistFilesListMvp.View, G
|
||||
if (ActivityHelper.checkAndRequestReadWritePermission(getActivity())) {
|
||||
RestProvider.downloadFile(getContext(), url);
|
||||
}
|
||||
} else if (bundle.getBoolean(BundleConstant.YES_NO_EXTRA)) {
|
||||
if (adapter != null) {
|
||||
int position = bundle.getInt(BundleConstant.ID);
|
||||
String filename = adapter.getItem(position).getFilename();
|
||||
adapter.removeItem(position);
|
||||
if (updateGistCallback != null) {
|
||||
updateGistCallback.onUpdateGist(adapter.getData(), filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -101,4 +136,15 @@ public class GistFilesListFragment extends BaseFragment<GistFilesListMvp.View, G
|
||||
super.onScrollTop(index);
|
||||
if (recycler != null) recycler.scrollToPosition(0);
|
||||
}
|
||||
|
||||
private boolean canOpen(@NonNull FilesListModel item) {
|
||||
if (item.getRawUrl() == null) return false;
|
||||
if (item.getSize() > FileHelper.ONE_MB && !MarkDownProvider.isImage(item.getRawUrl())) {
|
||||
MessageDialogView.newInstance(getString(R.string.big_file), getString(R.string.big_file_description), false, true,
|
||||
Bundler.start().put(BundleConstant.YES_NO_EXTRA, true).put(BundleConstant.EXTRA, item.getRawUrl()).end())
|
||||
.show(getChildFragmentManager(), "MessageDialogView");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,15 +6,25 @@ import com.fastaccess.data.dao.FilesListModel;
|
||||
import com.fastaccess.ui.base.mvp.BaseMvp;
|
||||
import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Kosh on 13 Nov 2016, 1:35 PM
|
||||
*/
|
||||
|
||||
interface GistFilesListMvp {
|
||||
public interface GistFilesListMvp {
|
||||
|
||||
interface View extends BaseMvp.FAView {
|
||||
void onOpenFile(@NonNull FilesListModel item);
|
||||
|
||||
void onDeleteFile(@NonNull FilesListModel item, int position);
|
||||
|
||||
void onEditFile(@NonNull FilesListModel item, int position);
|
||||
}
|
||||
|
||||
interface Presenter extends BaseMvp.FAPresenter, BaseViewHolder.OnItemClickListener<FilesListModel> {}
|
||||
|
||||
interface UpdateGistCallback {
|
||||
void onUpdateGist(@NonNull List<FilesListModel> files, @NonNull String filename);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.fastaccess.ui.modules.gists.gist.files;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import com.fastaccess.R;
|
||||
import com.fastaccess.data.dao.FilesListModel;
|
||||
import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
|
||||
|
||||
@ -12,7 +13,15 @@ import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
|
||||
class GistFilesListPresenter extends BasePresenter<GistFilesListMvp.View> implements GistFilesListMvp.Presenter {
|
||||
|
||||
@Override public void onItemClick(int position, View v, FilesListModel item) {
|
||||
if (getView() != null) getView().onOpenFile(item);
|
||||
if (getView() != null) {
|
||||
if (v.getId() == R.id.delete) {
|
||||
getView().onDeleteFile(item, position);
|
||||
} else if (v.getId() == R.id.edit) {
|
||||
getView().onEditFile(item, position);
|
||||
} else {
|
||||
getView().onOpenFile(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onItemLongClick(int position, View v, FilesListModel item) {}
|
||||
|
||||
@ -7,6 +7,7 @@ import android.support.design.widget.CoordinatorLayout
|
||||
import android.support.transition.TransitionManager
|
||||
import android.view.View
|
||||
import android.widget.RelativeLayout
|
||||
import butterknife.BindView
|
||||
import butterknife.OnClick
|
||||
import com.fastaccess.BuildConfig
|
||||
import com.fastaccess.R
|
||||
@ -18,7 +19,6 @@ import com.fastaccess.ui.base.BaseActivity
|
||||
import com.fastaccess.ui.modules.login.LoginActivity
|
||||
import com.fastaccess.ui.modules.main.premium.PremiumActivity
|
||||
import com.fastaccess.ui.modules.settings.LanguageBottomSheetDialog
|
||||
import com.fastaccess.ui.widgets.bindView
|
||||
import com.fastaccess.ui.widgets.dialog.MessageDialogView
|
||||
import com.fastaccess.ui.widgets.recyclerview.DynamicRecyclerView
|
||||
import io.reactivex.functions.Action
|
||||
@ -30,11 +30,12 @@ import java.util.*
|
||||
|
||||
class LoginChooserActivity : BaseActivity<LoginChooserMvp.View, LoginChooserPresenter>(), LoginChooserMvp.View {
|
||||
|
||||
private val language_selector: RelativeLayout by bindView(R.id.language_selector)
|
||||
private val recycler: DynamicRecyclerView by bindView(R.id.recycler)
|
||||
private val multiAccLayout: View by bindView(R.id.multiAccLayout)
|
||||
private val viewGroup: CoordinatorLayout by bindView(R.id.viewGroup)
|
||||
private val toggleImage: View by bindView(R.id.toggleImage)
|
||||
@BindView(R.id.language_selector) lateinit var language_selector: RelativeLayout
|
||||
@BindView(R.id.recycler) lateinit var recycler: DynamicRecyclerView
|
||||
@BindView(R.id.multiAccLayout) lateinit var multiAccLayout: View
|
||||
@BindView(R.id.viewGroup) lateinit var viewGroup: CoordinatorLayout
|
||||
@BindView(R.id.toggleImage) lateinit var toggleImage: View
|
||||
|
||||
private val adapter = LoginAdapter()
|
||||
|
||||
override fun layout(): Int = R.layout.login_chooser_layout
|
||||
|
||||
@ -7,6 +7,7 @@ import android.support.transition.TransitionManager
|
||||
import android.view.View
|
||||
import android.widget.EditText
|
||||
import android.widget.FrameLayout
|
||||
import butterknife.BindView
|
||||
import butterknife.OnClick
|
||||
import butterknife.OnEditorAction
|
||||
import com.crashlytics.android.answers.Answers
|
||||
@ -19,16 +20,15 @@ import com.fastaccess.helper.PrefGetter
|
||||
import com.fastaccess.helper.ViewHelper
|
||||
import com.fastaccess.ui.base.BaseActivity
|
||||
import com.fastaccess.ui.modules.main.donation.DonateActivity
|
||||
import com.fastaccess.ui.widgets.bindView
|
||||
|
||||
/**
|
||||
* Created by kosh on 13/07/2017.
|
||||
*/
|
||||
class PremiumActivity : BaseActivity<PremiumMvp.View, PremiumPresenter>(), PremiumMvp.View {
|
||||
|
||||
private val editText: EditText by bindView(R.id.editText)
|
||||
private val progressLayout: View by bindView(R.id.progressLayout)
|
||||
private val viewGroup: FrameLayout by bindView(R.id.viewGroup)
|
||||
@BindView(R.id.editText) lateinit var editText: EditText
|
||||
@BindView(R.id.viewGroup) lateinit var viewGroup: FrameLayout
|
||||
@BindView(R.id.progressLayout) lateinit var progressLayout: FrameLayout
|
||||
|
||||
override fun layout(): Int = R.layout.pro_features_layout
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.support.v4.widget.SwipeRefreshLayout
|
||||
import android.view.View
|
||||
import butterknife.BindView
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.data.dao.BranchesModel
|
||||
import com.fastaccess.helper.BundleConstant
|
||||
@ -20,10 +21,12 @@ import com.fastaccess.ui.widgets.recyclerview.scroll.RecyclerViewFastScroller
|
||||
* Created by Kosh on 06 Jul 2017, 9:48 PM
|
||||
*/
|
||||
class BranchesFragment : BaseFragment<BranchesMvp.View, BranchesPresenter>(), BranchesMvp.View {
|
||||
private val recycler: DynamicRecyclerView by lazy { view!!.findViewById<DynamicRecyclerView>(R.id.recycler) }
|
||||
private val refresh: SwipeRefreshLayout by lazy { view!!.findViewById<SwipeRefreshLayout>(R.id.refresh) }
|
||||
private val stateLayout: StateLayout by lazy { view!!.findViewById<StateLayout>(R.id.stateLayout) }
|
||||
private val fastScroller: RecyclerViewFastScroller by lazy { view!!.findViewById<RecyclerViewFastScroller>(R.id.fastScroller) }
|
||||
|
||||
@BindView(R.id.recycler) lateinit var recycler: DynamicRecyclerView
|
||||
@BindView(R.id.refresh) lateinit var refresh: SwipeRefreshLayout
|
||||
@BindView(R.id.stateLayout) lateinit var stateLayout: StateLayout
|
||||
@BindView(R.id.fastScroller) lateinit var fastScroller: RecyclerViewFastScroller
|
||||
|
||||
private var onLoadMore: OnLoadMore<Boolean>? = null
|
||||
private var branchCallback: BranchesPagerListener? = null
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@ import android.support.design.widget.TabLayout
|
||||
import android.support.v4.view.ViewPager
|
||||
import android.support.v7.widget.Toolbar
|
||||
import android.view.View
|
||||
import butterknife.BindView
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.data.dao.BranchesModel
|
||||
import com.fastaccess.data.dao.FragmentPagerAdapterModel
|
||||
@ -21,9 +22,11 @@ import com.fastaccess.ui.modules.repos.extras.branches.BranchesMvp
|
||||
* Created by kosh on 15/07/2017.
|
||||
*/
|
||||
class BranchesPagerFragment : BaseDialogFragment<BaseMvp.FAView, BasePresenter<BaseMvp.FAView>>(), BranchesPagerListener {
|
||||
private val pager: ViewPager by lazy { view!!.findViewById<ViewPager>(R.id.pager) }
|
||||
private val tabs: TabLayout by lazy { view!!.findViewById<TabLayout>(R.id.tabs) }
|
||||
private val toolbar: Toolbar by lazy { view!!.findViewById<Toolbar>(R.id.toolbar) }
|
||||
|
||||
@BindView(R.id.pager) lateinit var pager: ViewPager
|
||||
@BindView(R.id.tabs) lateinit var tabs: TabLayout
|
||||
@BindView(R.id.toolbar) lateinit var toolbar: Toolbar
|
||||
|
||||
private var branchCallback: BranchesMvp.BranchSelectionListener? = null
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
|
||||
@ -5,6 +5,7 @@ import android.support.annotation.StringRes
|
||||
import android.view.View
|
||||
import android.widget.ProgressBar
|
||||
import android.widget.TextView
|
||||
import butterknife.BindView
|
||||
import com.evernote.android.state.State
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.helper.BundleConstant
|
||||
@ -22,11 +23,10 @@ class RepoLicenseBottomSheet : BaseMvpBottomSheetDialogFragment<RepoLicenseMvp.V
|
||||
@State var content: String? = null
|
||||
|
||||
|
||||
private val stateLayout: StateLayout by lazy { view!!.findViewById<StateLayout>(R.id.stateLayout) }
|
||||
|
||||
private val loader: ProgressBar by lazy { view!!.findViewById<ProgressBar>(R.id.readmeLoader) }
|
||||
private val webView: PrettifyWebView by lazy { view!!.findViewById<PrettifyWebView>(R.id.webView) }
|
||||
private val licenseName: TextView by lazy { view!!.findViewById<TextView>(R.id.licenseName) }
|
||||
@BindView(R.id.stateLayout) lateinit var stateLayout: StateLayout
|
||||
@BindView(R.id.readmeLoader) lateinit var loader: ProgressBar
|
||||
@BindView(R.id.webView) lateinit var webView: PrettifyWebView
|
||||
@BindView(R.id.licenseName) lateinit var licenseName: TextView
|
||||
|
||||
|
||||
override fun providePresenter(): RepoLicensePresenter = RepoLicensePresenter()
|
||||
|
||||
@ -11,6 +11,7 @@ import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.ProgressBar
|
||||
import butterknife.BindView
|
||||
import com.evernote.android.state.State
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.data.dao.NameParser
|
||||
@ -22,7 +23,6 @@ import com.fastaccess.provider.scheme.LinkParserHelper
|
||||
import com.fastaccess.ui.base.BaseActivity
|
||||
import com.fastaccess.ui.modules.repos.RepoPagerActivity
|
||||
import com.fastaccess.ui.widgets.StateLayout
|
||||
import com.fastaccess.ui.widgets.bindView
|
||||
import com.prettifier.pretty.PrettifyWebView
|
||||
|
||||
/**
|
||||
@ -30,12 +30,11 @@ import com.prettifier.pretty.PrettifyWebView
|
||||
*/
|
||||
class WikiActivity : BaseActivity<WikiMvp.View, WikiPresenter>(), WikiMvp.View {
|
||||
|
||||
private val navMenu: NavigationView by bindView(R.id.wikiSidebar)
|
||||
private val drawerLayout: DrawerLayout by bindView(R.id.drawer)
|
||||
private val progressbar: ProgressBar by bindView(R.id.progress)
|
||||
private val stateLayout: StateLayout by bindView(R.id.stateLayout)
|
||||
private val webView: PrettifyWebView by bindView(R.id.webView)
|
||||
|
||||
@BindView(R.id.wikiSidebar) lateinit var navMenu: NavigationView
|
||||
@BindView(R.id.drawer) lateinit var drawerLayout: DrawerLayout
|
||||
@BindView(R.id.progress) lateinit var progressbar: ProgressBar
|
||||
@BindView(R.id.stateLayout) lateinit var stateLayout: StateLayout
|
||||
@BindView(R.id.webView) lateinit var webView: PrettifyWebView
|
||||
|
||||
@State var wiki = WikiContentModel(null, null, arrayListOf())
|
||||
@State var selectedTitle: String = "Home"
|
||||
|
||||
@ -8,6 +8,7 @@ import android.support.v4.content.ContextCompat
|
||||
import android.support.v7.widget.Toolbar
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import butterknife.BindView
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.data.dao.CommitLinesModel
|
||||
import com.fastaccess.helper.BundleConstant
|
||||
@ -25,10 +26,11 @@ import com.fastaccess.ui.widgets.SpannableBuilder
|
||||
*/
|
||||
class AddReviewDialogFragment : BaseDialogFragment<BaseMvp.FAView, BasePresenter<BaseMvp.FAView>>() {
|
||||
|
||||
private val toolbar: Toolbar by lazy { view!!.findViewById<Toolbar>(R.id.toolbar) }
|
||||
private val textView: TextView by lazy { view!!.findViewById<TextView>(R.id.text) }
|
||||
private val lineNo: TextView by lazy { view!!.findViewById<TextView>(R.id.lineNo) }
|
||||
private val editText: TextInputLayout by lazy { view!!.findViewById<TextInputLayout>(R.id.editText) }
|
||||
@BindView(R.id.toolbar) lateinit var toolbar: Toolbar
|
||||
@BindView(R.id.text) lateinit var textView: TextView
|
||||
@BindView(R.id.lineNo) lateinit var lineNo: TextView
|
||||
@BindView(R.id.editText) lateinit var editText: TextInputLayout
|
||||
|
||||
private val spacePattern = "\\s+".toRegex()
|
||||
|
||||
private var commentCallback: ReviewCommentListener? = null
|
||||
|
||||
@ -10,13 +10,13 @@ import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.Spinner
|
||||
import butterknife.BindView
|
||||
import com.evernote.android.state.State
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.data.dao.ReviewRequestModel
|
||||
import com.fastaccess.helper.*
|
||||
import com.fastaccess.provider.theme.ThemeEngine
|
||||
import com.fastaccess.ui.base.BaseActivity
|
||||
import com.fastaccess.ui.widgets.bindView
|
||||
import com.fastaccess.ui.widgets.dialog.ProgressDialogFragment
|
||||
|
||||
/**
|
||||
@ -25,9 +25,9 @@ import com.fastaccess.ui.widgets.dialog.ProgressDialogFragment
|
||||
class ReviewChangesActivity : BaseActivity<ReviewChangesMvp.View, ReviewChangesPresenter>(), ReviewChangesMvp.View {
|
||||
|
||||
|
||||
val toolbar: Toolbar by bindView(R.id.toolbar)
|
||||
private val spinner: Spinner by bindView(R.id.reviewMethod)
|
||||
private val editText: TextInputLayout by bindView(R.id.editText)
|
||||
@BindView(R.id.toolbar) lateinit var toolbar: Toolbar
|
||||
@BindView(R.id.reviewMethod) lateinit var spinner: Spinner
|
||||
@BindView(R.id.editText) lateinit var editText: TextInputLayout
|
||||
|
||||
@State var reviewRequest: ReviewRequestModel? = null
|
||||
@State var repoId: String? = null
|
||||
|
||||
@ -9,6 +9,7 @@ import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import android.widget.RadioButton
|
||||
import android.widget.RadioGroup
|
||||
import butterknife.BindView
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.data.dao.NotificationSoundModel
|
||||
import com.fastaccess.helper.BundleConstant
|
||||
@ -22,9 +23,10 @@ import com.fastaccess.ui.widgets.FontTextView
|
||||
class NotificationSoundBottomSheet : BaseMvpBottomSheetDialogFragment<NotificationSoundMvp.View,
|
||||
NotificationSoundPresenter>(), NotificationSoundMvp.View {
|
||||
|
||||
private val title: FontTextView by lazy { view!!.findViewById<FontTextView>(R.id.title) }
|
||||
private val radioGroup: RadioGroup by lazy { view!!.findViewById<RadioGroup>(R.id.picker) }
|
||||
private val okButton: Button by lazy { view!!.findViewById<Button>(R.id.ok) }
|
||||
@BindView(R.id.title) lateinit var title: FontTextView
|
||||
@BindView(R.id.picker) lateinit var radioGroup: RadioGroup
|
||||
@BindView(R.id.ok) lateinit var okButton: Button
|
||||
|
||||
private val padding: Int by lazy { resources.getDimensionPixelSize(R.dimen.spacing_xs_large) }
|
||||
private var canPlaySound: Boolean = false
|
||||
private val mediaPlayer = MediaPlayer()
|
||||
|
||||
@ -6,6 +6,7 @@ import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.ViewAnimationUtils
|
||||
import butterknife.BindView
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.data.dao.FragmentPagerAdapterModel
|
||||
import com.fastaccess.helper.PrefGetter
|
||||
@ -16,7 +17,6 @@ import com.fastaccess.ui.base.mvp.presenter.BasePresenter
|
||||
import com.fastaccess.ui.modules.theme.fragment.ThemeFragmentMvp
|
||||
import com.fastaccess.ui.widgets.CardsPagerTransformerBasic
|
||||
import com.fastaccess.ui.widgets.ViewPagerView
|
||||
import com.fastaccess.ui.widgets.bindView
|
||||
|
||||
|
||||
/**
|
||||
@ -25,8 +25,8 @@ import com.fastaccess.ui.widgets.bindView
|
||||
|
||||
class ThemeActivity : BaseActivity<BaseMvp.FAView, BasePresenter<BaseMvp.FAView>>(), ThemeFragmentMvp.ThemeListener {
|
||||
|
||||
private val pager: ViewPagerView by bindView(R.id.pager)
|
||||
private val parentLayout: View by bindView(R.id.parentLayout)
|
||||
@BindView(R.id.pager) lateinit var pager: ViewPagerView
|
||||
@BindView(R.id.parentLayout) lateinit var parentLayout: View
|
||||
|
||||
override fun layout(): Int = R.layout.theme_viewpager
|
||||
|
||||
|
||||
@ -5,13 +5,13 @@ import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.ProgressBar
|
||||
import android.widget.Spinner
|
||||
import butterknife.BindView
|
||||
import butterknife.OnClick
|
||||
import butterknife.OnItemSelected
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.helper.PrefGetter
|
||||
import com.fastaccess.ui.adapter.SpinnerAdapter
|
||||
import com.fastaccess.ui.base.BaseActivity
|
||||
import com.fastaccess.ui.widgets.bindView
|
||||
import com.prettifier.pretty.PrettifyWebView
|
||||
import com.prettifier.pretty.helper.CodeThemesHelper
|
||||
|
||||
@ -21,9 +21,9 @@ import com.prettifier.pretty.helper.CodeThemesHelper
|
||||
|
||||
class ThemeCodeActivity : BaseActivity<ThemeCodeMvp.View, ThemeCodePresenter>(), ThemeCodeMvp.View {
|
||||
|
||||
private val spinner: Spinner by bindView(R.id.themesList)
|
||||
private val webView: PrettifyWebView by bindView(R.id.webView)
|
||||
private val progress: ProgressBar? by bindView(R.id.readmeLoader)
|
||||
@BindView(R.id.themesList) lateinit var spinner: Spinner
|
||||
@BindView(R.id.webView) lateinit var webView: PrettifyWebView
|
||||
@BindView(R.id.readmeLoader) lateinit var progress: ProgressBar
|
||||
|
||||
override fun layout(): Int = R.layout.theme_code_layout
|
||||
|
||||
@ -49,20 +49,20 @@ class ThemeCodeActivity : BaseActivity<ThemeCodeMvp.View, ThemeCodePresenter>(),
|
||||
|
||||
@OnItemSelected(R.id.themesList) fun onItemSelect() {
|
||||
val theme = spinner.selectedItem as String
|
||||
progress?.visibility = View.VISIBLE
|
||||
progress.visibility = View.VISIBLE
|
||||
webView.setThemeSource(CodeThemesHelper.CODE_EXAMPLE, theme)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
progress?.visibility = View.VISIBLE
|
||||
progress.visibility = View.VISIBLE
|
||||
webView.setOnContentChangedListener(this)
|
||||
title = ""
|
||||
presenter.onLoadThemes()
|
||||
}
|
||||
|
||||
override fun onContentChanged(p: Int) {
|
||||
progress?.let {
|
||||
progress.let {
|
||||
it.progress = p
|
||||
if (p == 100) it.visibility = View.GONE
|
||||
}
|
||||
|
||||
@ -11,6 +11,8 @@ import android.view.ContextThemeWrapper
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ProgressBar
|
||||
import butterknife.BindView
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.helper.*
|
||||
import com.fastaccess.ui.base.BaseFragment
|
||||
@ -23,8 +25,8 @@ import com.fastaccess.ui.widgets.SpannableBuilder
|
||||
|
||||
class ThemeFragment : BaseFragment<ThemeFragmentMvp.View, ThemeFragmentPresenter>(), ThemeFragmentMvp.View {
|
||||
|
||||
private val apply: FloatingActionButton by lazy { view!!.findViewById<FloatingActionButton>(R.id.apply) }
|
||||
private val toolbar: Toolbar by lazy { view!!.findViewById<Toolbar>(R.id.toolbar) }
|
||||
@BindView(R.id.apply) lateinit var apply: FloatingActionButton
|
||||
@BindView(R.id.toolbar) lateinit var toolbar: Toolbar
|
||||
|
||||
private val THEME = "appTheme"
|
||||
private var primaryDarkColor: Int = 0
|
||||
|
||||
@ -15,6 +15,7 @@ import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import butterknife.BindView
|
||||
import butterknife.OnClick
|
||||
import butterknife.OnEditorAction
|
||||
import butterknife.OnTextChanged
|
||||
@ -25,7 +26,6 @@ import com.fastaccess.ui.base.BaseActivity
|
||||
import com.fastaccess.ui.modules.main.MainActivity
|
||||
import com.fastaccess.ui.modules.trending.fragment.TrendingFragment
|
||||
import com.fastaccess.ui.widgets.FontEditText
|
||||
import com.fastaccess.ui.widgets.bindView
|
||||
|
||||
|
||||
/**
|
||||
@ -35,13 +35,13 @@ import com.fastaccess.ui.widgets.bindView
|
||||
class TrendingActivity : BaseActivity<TrendingMvp.View, TrendingPresenter>(), TrendingMvp.View {
|
||||
private var trendingFragment: TrendingFragment? = null
|
||||
|
||||
private val navMenu: NavigationView by bindView(R.id.navMenu)
|
||||
private val daily: TextView by bindView(R.id.daily)
|
||||
private val weekly: TextView by bindView(R.id.weekly)
|
||||
private val monthly: TextView by bindView(R.id.monthly)
|
||||
private val drawerLayout: DrawerLayout by bindView(R.id.drawer)
|
||||
private val clear: View by bindView(R.id.clear)
|
||||
private val searchEditText: FontEditText by bindView(R.id.searchEditText)
|
||||
@BindView(R.id.navMenu) lateinit var navMenu: NavigationView
|
||||
@BindView(R.id.daily) lateinit var daily: TextView
|
||||
@BindView(R.id.weekly) lateinit var weekly: TextView
|
||||
@BindView(R.id.monthly) lateinit var monthly: TextView
|
||||
@BindView(R.id.drawer) lateinit var drawerLayout: DrawerLayout
|
||||
@BindView(R.id.clear) lateinit var clear: View
|
||||
@BindView(R.id.searchEditText) lateinit var searchEditText: FontEditText
|
||||
|
||||
|
||||
@State var selectedTitle: String = "All Language"
|
||||
@ -112,14 +112,14 @@ class TrendingActivity : BaseActivity<TrendingMvp.View, TrendingPresenter>(), Tr
|
||||
if (savedInstanceState == null) {
|
||||
presenter.onLoadLanguage()
|
||||
} else {
|
||||
Handler().postDelayed({
|
||||
Logger.e(searchEditText.text)
|
||||
if (InputHelper.isEmpty(searchEditText)) { //searchEditText.text is always empty even tho there is a text in it !!!!!!!
|
||||
presenter.onLoadLanguage()
|
||||
} else {
|
||||
presenter.onFilterLanguage(InputHelper.toString(searchEditText))
|
||||
}
|
||||
}, 300)
|
||||
Handler().postDelayed({
|
||||
Logger.e(searchEditText.text)
|
||||
if (InputHelper.isEmpty(searchEditText)) { //searchEditText.text is always empty even tho there is a text in it !!!!!!!
|
||||
presenter.onLoadLanguage()
|
||||
} else {
|
||||
presenter.onFilterLanguage(InputHelper.toString(searchEditText))
|
||||
}
|
||||
}, 300)
|
||||
}
|
||||
onSelectTrending()
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.fastaccess.ui.modules.trending.fragment
|
||||
import android.os.Bundle
|
||||
import android.support.v4.widget.SwipeRefreshLayout
|
||||
import android.view.View
|
||||
import butterknife.BindView
|
||||
import com.evernote.android.state.State
|
||||
import com.fastaccess.R
|
||||
import com.fastaccess.data.dao.TrendingModel
|
||||
@ -18,22 +19,19 @@ import com.fastaccess.ui.widgets.recyclerview.scroll.RecyclerViewFastScroller
|
||||
|
||||
class TrendingFragment : BaseFragment<TrendingFragmentMvp.View, TrendingFragmentPresenter>(), TrendingFragmentMvp.View {
|
||||
|
||||
private val recycler: DynamicRecyclerView by lazy { view!!.findViewById<DynamicRecyclerView>(R.id.recycler) }
|
||||
private val refresh: SwipeRefreshLayout by lazy { view!!.findViewById<SwipeRefreshLayout>(R.id.refresh) }
|
||||
private val stateLayout: StateLayout by lazy { view!!.findViewById<StateLayout>(R.id.stateLayout) }
|
||||
private val fastScroller: RecyclerViewFastScroller by lazy { view!!.findViewById<RecyclerViewFastScroller>(R.id.fastScroller) }
|
||||
@BindView(R.id.recycler) lateinit var recycler: DynamicRecyclerView
|
||||
@BindView(R.id.refresh) lateinit var refresh: SwipeRefreshLayout
|
||||
@BindView(R.id.stateLayout) lateinit var stateLayout: StateLayout
|
||||
@BindView(R.id.fastScroller) lateinit var fastScroller: RecyclerViewFastScroller
|
||||
|
||||
private val adapter by lazy { TrendingAdapter(presenter.getTendingList()) }
|
||||
|
||||
@State var lang: String = ""
|
||||
@State var since: String = ""
|
||||
|
||||
override fun providePresenter(): TrendingFragmentPresenter {
|
||||
return TrendingFragmentPresenter()
|
||||
}
|
||||
override fun providePresenter(): TrendingFragmentPresenter = TrendingFragmentPresenter()
|
||||
|
||||
override fun fragmentLayout(): Int {
|
||||
return R.layout.small_grid_refresh_list
|
||||
}
|
||||
override fun fragmentLayout(): Int = R.layout.small_grid_refresh_list
|
||||
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
||||
stateLayout.setEmptyText(R.string.no_trending)
|
||||
|
||||
@ -6,18 +6,18 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/spacing_micro"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:foreground="?selectableItemBackground"
|
||||
android:stateListAnimator="@animator/cardview_selector"
|
||||
app:cardBackgroundColor="?card_background">
|
||||
app:cardBackgroundColor="?card_background"
|
||||
app:contentPaddingBottom="@dimen/spacing_normal"
|
||||
app:contentPaddingLeft="@dimen/spacing_xs_large"
|
||||
app:contentPaddingRight="@dimen/spacing_xs_large"
|
||||
app:contentPaddingTop="@dimen/spacing_normal">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="@dimen/spacing_normal"
|
||||
android:paddingEnd="@dimen/spacing_xs_large"
|
||||
android:paddingStart="@dimen/spacing_xs_large"
|
||||
android:paddingTop="@dimen/spacing_normal">
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.fastaccess.ui.widgets.FontTextView
|
||||
android:id="@+id/fileName"
|
||||
@ -41,6 +41,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/right_border"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
tools:text="JAVASCRIPT"/>
|
||||
|
||||
@ -51,12 +52,28 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="0.4"
|
||||
android:background="@drawable/left_border"
|
||||
android:background="@drawable/right_border"
|
||||
android:gravity="center"
|
||||
android:paddingEnd="@dimen/spacing_normal"
|
||||
android:paddingStart="@dimen/spacing_normal"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
tools:text="500 KB"/>
|
||||
|
||||
<com.fastaccess.ui.widgets.ForegroundImageView
|
||||
android:id="@+id/delete"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?selectableItemBackgroundBorderless"
|
||||
android:padding="@dimen/spacing_micro"
|
||||
android:src="@drawable/ic_trash"/>
|
||||
|
||||
<com.fastaccess.ui.widgets.ForegroundImageView
|
||||
android:id="@+id/edit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?selectableItemBackgroundBorderless"
|
||||
android:padding="@dimen/spacing_micro"
|
||||
android:src="@drawable/ic_edit"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user