Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.example.yeseul.movieapp.view;

import android.content.DialogInterface;
import android.content.pm.ActivityInfo;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.webkit.WebView;
import android.widget.Toast;

public abstract class BaseActivity<B extends ViewDataBinding, P extends BasePresenter> extends AppCompatActivity {
Expand All @@ -30,6 +32,26 @@ public void makeToast(String text){
Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
}

public void showDialog(String linkUrl) {
WebView webView = new WebView(this);
webView.setScrollbarFadingEnabled(false);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setUserAgentString("AndroidWebView");
webView.clearCache(true);
webView.loadUrl(linkUrl);

AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setView(webView);
dialog.setCancelable(false);
dialog.setNegativeButton("닫기", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
}
});
dialog.show();
}

protected abstract int getLayoutId();
protected abstract P getPresenter();
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.example.yeseul.movieapp.view.adapter;

import android.widget.AdapterView;

import java.util.List;

public interface AdapterContract {

interface View {

void setOnItemLongClickListener(OnItemLongClickListener onItemLongClickListener);
void setOnItemClickListener(OnItemClickListener itemClickListener);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -11,6 +14,7 @@ public abstract class BaseRecyclerAdapter<T, H extends RecyclerView.ViewHolder>

protected List<T> itemList;
protected OnItemClickListener onItemClickListener;
protected OnItemLongClickListener onItemLongClickListener;
protected Context context;

public BaseRecyclerAdapter(Context context){
Expand All @@ -26,6 +30,11 @@ public Context getContext(){
return context;
}

@Override
public void setOnItemLongClickListener(OnItemLongClickListener onItemLongClickListener) {
this.onItemLongClickListener = onItemLongClickListener;
}

@Override
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
Expand Down Expand Up @@ -193,6 +202,14 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int

});

holder.itemView.setOnLongClickListener( view -> {
if(onItemLongClickListener != null) {
Log.d("log", "long touch");
onItemLongClickListener.onItemLongClick(position);
}
return true;
});

onBindView((H) holder, position);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.example.yeseul.movieapp.view.adapter;

public interface OnItemLongClickListener {

void onItemLongClick(int position);
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@
import com.example.yeseul.movieapp.R;
import com.example.yeseul.movieapp.data.source.movie.MovieRepository;
import com.example.yeseul.movieapp.databinding.ActivityMovieBinding;
import com.example.yeseul.movieapp.pojo.Movie;
import com.example.yeseul.movieapp.utils.KeyboardUtil;
import com.example.yeseul.movieapp.view.BaseActivity;


public class MainActivity extends BaseActivity<ActivityMovieBinding, MainPresenter> implements MainContract.View {

private MovieListAdapter adapter;
Expand Down Expand Up @@ -118,4 +120,11 @@ public void startMovieDetailPage(String linkUrl) {

customTabsIntent.launchUrl(this, Uri.parse(linkUrl));
}

/**
* 현재 창 안에 Dialog를 이용한 웹 사이트 출력 */
@Override
public void startSimpleView(String linkUrl, String movieTitle) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

movietitle 변수는 사용되지 않으니 지우셔도 될 것 같습니다!

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

에구 MainActivity에서 Base로 넘겨줬어야했는데 잊고 지나쳤네요 지적 감사합니다

showDialog(linkUrl);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ interface View extends BaseView {
void onSearchResultEmpty(String searchKey);

void startMovieDetailPage(String linkUrl);

void startSimpleView(String linkUrl, String movieTitle);
}

interface Presenter extends BasePresenter {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@
import android.databinding.ObservableBoolean;
import android.databinding.ObservableField;

import com.example.yeseul.movieapp.data.model.SearchMovieResponse;
import com.example.yeseul.movieapp.data.source.movie.MovieRepository;
import com.example.yeseul.movieapp.mapper.MovieMapper;
import com.example.yeseul.movieapp.pojo.Movie;
import com.example.yeseul.movieapp.view.adapter.AdapterContract;

import java.util.List;

import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;

public class MainPresenter implements MainContract.Presenter {
Expand Down Expand Up @@ -64,6 +66,8 @@ public void setAdapterView(AdapterContract.View adapterView) {
this.adapterView = adapterView;
this.adapterView.setOnItemClickListener(position ->
view.startMovieDetailPage(this.adapterModel.getItem(position).getLinkUrl()));
this.adapterView.setOnItemLongClickListener(position ->
view.startSimpleView(this.adapterModel.getItem(position).getLinkUrl(), this.adapterModel.getItem(position).getTitle()));
}

@Override
Expand Down